我有一个“Sandbox”目录来测试各种节点存储库。每个存储库都有自己的package.json
,需要我运行npm
来安装其依赖项。这导致一次又一次地安装相同的依赖模块。
有没有办法避免这种浪费?
理想情况下,我希望目录树中每个存储库的package.json
所需的所有模块都安装在顶部的“Sadbox”目录中,如果它在那里,则跳过它。
所以当我在
中运行npm i
时
Sandbox/repo1
它会检查package.json
中的模块是否已经在
Sandbox/node_modules/
如果是,且版本兼容,则会跳过该模块。
我尝试使用dedupe
,但这似乎不是这样的。
答案 0 :(得分:1)
有两种可能性:
1:https://docs.npmjs.com/files/folders#cycles-conflicts-and-folder-parsimony
在每个阶段,如果一个软件包已经安装在祖先的node_modules文件夹中,那么它就不会安装在当前位置。
如果为true,那么如果有合适的全局安装包,则本地安装将链接。
请注意,这意味着本地安装可能会导致事物同时安装到全局空间中。只有在满足以下两个条件之一时才会完成链接:
- 该软件包尚未全局安装,或
- 全局安装的版本与本地安装的版本相同。
答案 1 :(得分:0)
答案“here”提到了一种避免在npm install
情况下遇到重复下载/安装相同软件包的方法。