我正在使用两个具有相同依赖关系的软件包: "aws-sdk": "^2.22.0"
。
当我运行npm install
时,两个软件包都会在自己的node_modules
子目录中安装相同的软件包,例如:
my_project
node_modules
package_1
node_modules
aws_sdk
...
package_2
node_modules
aws_sdk
...
aws_sdk
...
您会注意到我的基本项目也使用AWS-SDK,因此第三次安装。
我的项目仅在100KB以下,但AWS-SDK封装重量〜17MB,总尺寸达到〜50MB,这很荒谬。
我尝试了npm dedupe
和flatten-packages
软件包,这没有区别。
我该怎么做才能使NPM仅安装一次?
我正在使用Windows 10,Node 7.4.0和NPM 4.0.5。
对此没有什么可做的...这就是node.js
模块依赖性的方式。
每个模块都与其依赖关系一起安装。这样,如果您决定使用其他版本的aws_sdk
,则您的模块仍然可以正常工作,因为它们包装了其相应的aws_sdk
版本。
这与Ruby on Rails
不同,例如,可以在整个应用程序上使用单个版本的软件包(GEM)。
npm
可能会自行进行一些优化,但是最好让它完成工作。
您可以在此处阅读更多。