在node.js应用程序中处理内部模块的首选方式是什么?

我的意思是,当前我们有一个相当大的应用程序,并且通过npm安装了一些依赖项。我们在node_modules中有.gitignore。因此,它不在存储库中。我们使用npm shrinkwrap冻结模块版本,因此,在部署后,npm install将我们需要的所有内容汇总到node_modules中。

问题是,由于out应用程序越来越大,我们希望将其拆分为较小的模块。现在,如果我创建一个foo模块并将其放入node_modues,则需要在 repo 协议(protocol)中允许它,这似乎并不那么巧妙,既可以忽略又可以 check out node_modules中的模块。

我们无法在npm注册表上发布这些内容,因为它们并不是真正的“公共(public)”。

有什么我不知道的明显解决方案吗?

最佳答案

我同意不将第三方非 repo 内容与您内部修订控制的内容混为一谈的美学观点。

NODE_PATH搜索路径变量可以在这里为您提供帮助,您可以在目录版本控制下使用其他目录。

http://nodejs.org/api/modules.html

根据灵活性和复杂性的需求,可以考虑一个构建步骤,该步骤实际上将各种 Node 模块从保存它们的任何位置复制到输出目录(可能是“命名为node_modules”,但不一定如此)。

09-10 05:36
查看更多