【问题标题】:Submodules in BrowserifyBrowserify 中的子模块
【发布时间】:2015-08-21 18:40:29
【问题描述】:
/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

这个映射是在哪里定义的?

【问题讨论】:

标签: javascript node.js reactjs browserify


【解决方案1】:

没有办法指定基本目录,因为节点模块不是这样工作的。如果您想要非相对路径,请使用 node_modules 目录。如果您希望 require('foo') 在任何目录中工作,只需从您的项目根目录创建一个符号链接:

ln -s foo node_modules/foo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-18
    相关资源
    最近更新 更多