1

我今天正在安装sails.js,看看它是如何一遍又一遍地安装相同的包(我的应用程序依赖项的依赖项),那么为什么npm 不使用像系统这样的gem?将其全局保存在库和他的不同版本中,如果您在服务器上有多个项目并且不一遍又一遍地安装相同的库,那么共享同一个库会很酷(我知道这是使用 npm 链接的一种解决方法,但似乎不被认为是最佳实践)。

4

2 回答 2

3

依赖管理是困难的。npm 非常坚持不共享包并坚持每个包都有自己的 node_modules 文件夹。这样可以避免很多潜在的陷阱。这些包非常小,使用多一点的磁盘空间几乎总是比试图解决与依赖版本控制相关的问题更好。

同样有趣的是,注意何时在 git 中包含 node_modules。http://www.futurealoof.com/posts/nodemodules-in-git.html

于 2013-04-09T02:18:54.707 回答
2

对于这种功能选择,我可以给出的最佳猜测是产品可以使用的库的不同版本。也许您使用的是 Connect 2.8,但您的依赖项可能使用的是与您的 Connect 版本不兼容的 Connect 1.5。

于 2013-04-09T02:14:39.817 回答