8

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

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

问题是,由于应用程序越来越大,我们希望将其拆分为更小的模块。现在,如果我创建一个foo模块并将其node_modues放入node_modules.

我们不能在 npm 注册表上发布这些,因为它们并不是真正的“公开”。

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

4

2 回答 2

7

我同意您不将第 3 方非回购内容与您的内部修订控制内容混合的审美。

NODE_PATH 搜索路径变量可以在这里为您提供帮助,您可以使用不同的目录,其内容受修订控制。

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

根据您对灵活性与复杂性的偏好,您可以考虑一个构建步骤,该步骤实际上将各种节点模块从您保存的位置复制到输出目录(可能是“命名的 node_modules”,但不一定)。

于 2012-08-31T22:35:52.177 回答
5

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

于 2012-08-31T22:53:58.450 回答