通过不同软件包共享的NPM依赖关系已安装两次



我正在使用两个具有相同依赖关系的软件包: "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 dedupeflatten-packages软件包,这没有区别。

我该怎么做才能使NPM仅安装一次?

我正在使用Windows 10,Node 7.4.0和NPM 4.0.5。

对此没有什么可做的...这就是node.js模块依赖性的方式。

每个模块都与其依赖关系一起安装。这样,如果您决定使用其他版本的aws_sdk,则您的模块仍然可以正常工作,因为它们包装了其相应的aws_sdk版本。

这与Ruby on Rails不同,例如,可以在整个应用程序上使用单个版本的软件包(GEM)。

npm可能会自行进行一些优化,但是最好让它完成工作。

您可以在此处阅读更多。

最新更新