Node.js npm-如何避免my“的重复节点模块安装”;沙箱;?

Node.js npm-如何避免my“的重复节点模块安装”;沙箱;?,node.js,package,npm,Node.js,Package,Npm,我有一个“沙盒”目录来测试各种节点存储库。每个存储库都有自己的package.json,需要我运行npm来安装其依赖项。这会导致重复安装相同的依赖模块 有没有办法避免这种浪费? 理想情况下,我希望目录树下每个存储库的package.json所需的所有模块都安装在顶部的“Sadbox”目录中,如果在那里,则跳过它 因此,当我在内部运行npm时 Sandbox/repo1 它将检查其包.json中的模块是否已经在其中 Sandbox/node_modules/ 如果是,并且版本兼容,它将跳过该模

我有一个“沙盒”目录来测试各种节点存储库。每个存储库都有自己的
package.json
,需要我运行
npm
来安装其依赖项。这会导致重复安装相同的依赖模块

有没有办法避免这种浪费? 理想情况下,我希望目录树下每个存储库的
package.json
所需的所有模块都安装在顶部的“Sadbox”目录中,如果在那里,则跳过它

因此,当我在内部运行
npm时

Sandbox/repo1
它将检查其
包.json
中的模块是否已经在其中

Sandbox/node_modules/
如果是,并且版本兼容,它将跳过该模块


我曾尝试使用
重复数据消除
,但这种方法似乎不起作用

答案“”提到了一种避免在
npm安装

的情况下重复下载/安装相同软件包的方法。有两种可能性:

1:

在每个阶段,如果包已安装在祖先节点_modules文件夹中,则它不会安装在当前位置

2::

如果为true,则如果存在合适的全局安装包,则本地安装将链接

请注意,这意味着本地安装可能会导致同时将内容安装到全局空间。仅当满足以下两个条件之一时,才进行链接:

  • 程序包尚未全局安装,或者
  • 全局安装的版本与本地安装的版本相同

UH如何安装这些软件包
npm install package name
也会将所有依赖项安装到您的
node\u模块中
,不要在这些包中再次运行
npm install
。@Alandarov抱歉,我指的是存储库,不是包,现在更正。这些是从Github下载或由Yeoman创建的回购协议。这些项目的从属关系是否可能有所不同?例如,它们可能都需要Express,但版本不同。如果晚上没有人帮忙,我会仔细研究你的问题,一旦我有了Node.js可用的机器。@Alandarov可能需要不同的版本,在这种情况下完全安装是可以的,但通常情况下他们不需要。谢谢@dmitri符号链接不能解决您的问题吗?它只是说删除并重新安装软件包,我不认为如果同一个软件包已经在更高的目录中,这可以解决问题并跳过安装?尽管一个软件包实际上可能不会被安装多次,有些软件包似乎仍要通过某种安装脚本进行安装,导致安装速度非常慢。如果我的用户没有所需的权限,有没有办法使用
link
,而不尝试将其安装到全局空间?