2017-03-06 76 views
2

我使用了兩個具有相同依賴關係的包:"aws-sdk": "^2.22.0"由不同的包共享的npm依賴關係安裝了兩次

當我運行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,節點7.4.0和npm 4.0.5。

回答

0

對此沒有太多待做...這是如何設計模塊依賴關係的。

每個模塊都隨其相關性一起安裝。這樣,如果您決定使用aws_sdk的不同版本,那麼您的模塊仍然可以工作,因爲它們與其相應版本aws_sdk打包在一起。

例如,這與Ruby on Rails不同,其中可以在整個應用程序中使用單個版本的包(gem)。

npm可能會對它自己做一些優化,但最好是讓它完成它的工作。

您可以閱讀更多here