推荐的方法来组织共享模块browserify / nodejs

时间:2014-11-30 11:42:02

标签: javascript node.js

我有一个相当大的javascript项目,有各种共享模块。 因此,我经常最终得到看起来像这样的要求

var CommonModule = require('../../../common/shared_module.js')

将共同驻留的功能拆分为自己的包是有意义的。但是移动common / to node_modules似乎有点模糊。是否有推荐的方式来组织共享内容?

对我来说,拥有多个项目似乎合乎逻辑

main_project/
shared_resources/
some_other_shared/

并以某种方式将这些项目链接在主要内容中。但我还没能找到一个顺利的解决方案。

有更好的想法吗?=)

2 个答案:

答案 0 :(得分:0)

我还没有用我自己的文件尝试过这个,但是如果你把一个模块放到项目根目录下的node_modules中,那么整个子树都可以访问它。 npm如果已经存在于根目录中,则不会安装内部依赖项。

答案 1 :(得分:0)

我将__rootdir保存在我的应用程序条目中的全局变量中。

global.__rootdir = __dirname;

所以当我想在深层嵌套模块中需要我的公共模块时,我使用

require(path.join(__rootdir, 'lib/somelib');

另一种方法是使用symbal链接将您的公共模块链接到node_modules,以便您可以轻松地需要您的模块

require('commmon/somelib');

如果您使用第二种方式,请记住在.gitignore文件中排除您的模块。基本上,您不希望在源代码管理中保存所有node_modules。

这是一个很好的帖子与这个问题有关。必须看一下这个https://gist.github.com/branneman/8048520