/foo
/bar.js
/foobar.js
/index.js
在node.js中,如果您需要一个目录(require('foo')),它会查找该目录并找到一个index.js文件并返回该文件中的所有导出,因此我可以将该目录的内容捆绑在一个index.js文件中。因此,如果 index.js 已经包含 bar 和 foobar,我就不必单独要求它们。
但是这种方法不适用于 browserify。 browserify 似乎唯一能理解的就是相对路径。
/star
/star.js
/starfoo.js
/index.js
/foo
/bar.js
/foobar.js
/index.js
换句话说,我想将我的项目分成子模块,在目录上调用 require ,就像我在依赖项上调用 require 一样。例如,在 star.js 文件中,我希望能够 require('foo') 并获取 bar.js 和 foobar.js 的导出(只要/foo/index.js 导入 bar.js 和 foobar.js)
编辑: 查看react源代码,我认为我所描述的是可能的
https://github.com/facebook/react/blob/master/src/isomorphic/ReactIsomorphic.js 在此文件中,他们在第 14 行调用了 React-Children 上的 require。
var ReactChildren = require('ReactChildren');
然而,React Children 的目录更深。 https://github.com/facebook/react/blob/master/src/isomorphic/children/ReactChildren.js
这个映射是在哪里定义的?
最佳答案
没有办法指定基本目录,因为这不是 Node 模块的工作方式。如果您需要非相对路径,请使用 node_modules
目录。如果您希望 require('foo')
在任何目录中工作,只需从项目根目录创建一个符号链接(symbolic link)即可:
ln -s foo node_modules/foo
关于javascript - Browserify 中的子模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30689808/