2016-07-11 42 views
0

我正在致力於javascript/Node/React模塊。我開發:爲什麼「npm install」會覆蓋現有符號鏈接中的節點模塊?

  • 1模塊一個擁有常見的功能
  • 其他模塊,C,d ...有依賴性A.

我需要能夠同時在AB上開發。這就是爲什麼,在npm installB之後,我創建了一個符號鏈接,從BAnpm link ../A。我就能夠從一個,一個的WebPack開發服務器從並推出的WebPack dev的服務器,因此,任何修改一個將影響。在這一點上,這種方式對我來說都很好。

我的問題是,如果我從啓動命令npm install,將符號鏈接保持到一個一個庫中刪除幾個節點模塊。我不知道爲什麼?我想保留現有的符號鏈接A存在並讓B在重新安裝時忽略它。

爲我的第一溶液是填補NPM腳本後安裝&預安裝安裝節點模塊之前做符號鏈接的rimraf和其後重新生成的符號鏈接。但是,對於開發人員不上一個工作,並且不要求任何符號鏈接的問題...

我剛剛更新NPM從2到3,我沒有找到如何npm install交互的任何答案與現有的符號鏈接。

我使用:

  • NPM 3.10.3
  • 節點6.3.0

感謝任何想法或鏈接,可以幫助

回答

0

我終於明白了什麼追加做額外的測試。看來我描述的行爲來自'shrinkwrap.json'方式。不管附加的文件夾在,如果我在安裝(npm install與現有shrinkwrap.json,所述shrinkwrap規則遵守。

在我的情況下,有加載在A的開發依賴關係。這些dev dev依賴項沒有在shrinkwrap.json中從B中列出。結果,當重新安裝B時,A被改變。

我能產生反問題:如果我安裝一個npm shrinkwrap,我有無數的錯誤,如「npm ERR! extraneous:

似乎沒有開發依賴鎖定的依賴不能適合做npm符號鏈接安裝在'開發模式'中的文件夾 - 又名安裝了開發依賴項。

相關問題