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