javascript - Browserify 中的子模块

标签 javascript node.js reactjs browserify

/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/

相关文章:

javascript - 使用 jQuery 从选定的单选按钮获取 Alt =""值

javascript - Angular-Meteor mongo 数据未渲染

node.js - 使用 throw-catch 打破 promise 链

node.js - 如何故意使我的 Node 应用程序崩溃?

reactjs - 在操作调用源自的 View 中处理 Redux Saga 结果

javascript - Node.js [promise-ftp] - 从 FTP 下载多个文件时无法建立数据连接(错误 : connect ECONNREFUSED. ..)

javascript - 获取级联单选按钮值的值

mysql - 使用 node.js 在 mysql 中插入几何值

reactjs - 如何在 React Router v4 中使用 context api?

javascript - 当我在 React 中按下按钮时,我该如何做到只出现一个特定的模式?