如何管理内部Node.JS模块

Eki*_*Koc 7 dependencies github node.js npm

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

我的意思是,目前我们有一个相当大的应用程序,并且有几个依赖项,通过npm安装.我们有node_modules.gitignore.因此它不在存储库中.我们使用npm shrinkwrap冻结模块版本,因此,在部署时,npm install将我们需要的东西放在一起node_modules.

问题是,由于out app越来越大,我们希望将它拆分为更小的模块.现在,如果我创建一个foo模块并将其放入node_modues,我需要在repo中允许它,这似乎并不是很容易忽略和检出模块node_modules.

我们无法在npm注册表上发布这些内容,因为它们并非真正"公开".

有没有明显的解决方案我不知道?

dav*_*ink 7

我同意你不将第三方非回购材料与内部版本控制内容混合的美学.

NODE_PATH搜索路径变量可以在这里帮助您,您可以使用不同的目录,其中包含修订控制下的内容.

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

根据您对灵活性与复杂性的关系,您可以考虑实际将各种节点模块从保存它们的任何位置复制到输出目录(可能"命名为node_modules"但不一定)的构建步骤.


Mic*_*ley 5

一个常见的解决方案是将模块存储在某个私有Git存储库中,然后使用git://URL作为依赖项; npm知道如何将存储库克隆为依赖项.