如何pipe理内部Node.JS模块

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

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

问题是,由于应用程序越来越大,我们希望将其分割成更小的模块。 现在,如果我创build一个foo模块并将其放入node_modues ,我需要在repo中允许它,这似乎不是很好,因此忽略并检查了node_modules模块。

我们不能在npmregistry上发布这些信息,因为它们并不真正“公开”。

有没有明显的解决scheme,我不知道?

我同意你的审美,不混合第三方非回购的东西与您的内部修订控制的内容。

NODE_PATHsearchpathvariables可以在这里帮助你,你可以使用一个不同的目录,内容在版本控制之下。

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

根据您对灵活性和复杂性的需求,您可以考虑一个构build步骤,将您保存的各个节点模块实际上复制到输出目录(可能是“named node_modules”,但不一定)。

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