在node.js应用程序中处理内部模块的首选方法是什么?
我的意思是,目前我们有一个相当大的应用程序,并且有几个依赖项,通过npm安装。我们在node_modules
中有.gitignore
。因此它不在存储库中。我们使用npm shrinkwrap
来冻结模块版本,因此,在部署时,npm install
将我们需要的内容整合到node_modules
中。
问题是,由于app越来越大,我们希望将其拆分为更小的模块。现在,如果我创建一个foo
模块并将其放在node_modues
中,我需要在repo中允许它,这在node_modules
中忽略和检出模块似乎不那么整洁}。
我们无法在npm注册表上发布这些内容,因为它们并非真正“公开”。
有没有我不知道的明显解决方案?
答案 0 :(得分:7)
我同意你不会将第三方非回购内容与内部修订控制内容混合的美学。
NODE_PATH搜索路径变量可以在这里为您提供帮助,您可以使用包含修订控制下内容的其他目录。
http://nodejs.org/api/modules.html
根据您对灵活性与复杂性的关系,您可以考虑一个构建步骤,实际上将您的各种节点模块从保存它们的任何位置复制到输出目录中(可能“命名为node_modules”,但不一定)。
答案 1 :(得分:5)
一个常见的解决方案是将模块存储在某个私有Git存储库中,然后使用git://
URL作为依赖项; npm知道如何将存储库克隆为依赖项。