npm - 如何避免重复节点模块安装我的"沙箱"?

时间:2014-07-10 07:35:48

标签: node.js package npm

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

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

所以当我在

中运行npm i
Sandbox/repo1

它会检查package.json中的模块是否已经在

Sandbox/node_modules/

如果是,且版本兼容,则会跳过该模块。

我尝试使用dedupe,但这似乎不是这样的。

2 个答案:

答案 0 :(得分:1)

有两种可能性:

1:https://docs.npmjs.com/files/folders#cycles-conflicts-and-folder-parsimony

  

在每个阶段,如果一个软件包已经安装在祖先的node_modules文件夹中,那么它就不会安装在当前位置。

2:npm config-variable 'link'

  

如果为true,那么如果有合适的全局安装包,则本地安装将链接。

     

请注意,这意味着本地安装可能会导致事物同时安装到全局空间中。只有在满足以下两个条件之一时才会完成链接:

     
      
  • 该软件包尚未全局安装,或
  •   
  • 全局安装的版本与本地安装的版本相同。
  •   

答案 1 :(得分:0)

答案“here”提到了一种避免在npm install情况下遇到重复下载/安装相同软件包的方法。