背景
我們遇到的問題與Windows構建系統碰到文件路徑當節點模塊文件夾有有在其內物品太長錯誤路徑超過260個字符。如何防止NPM從重新排序devDependencies安裝<package> --save-dev的
我們發現在devDependencies部分的頂部添加深度嵌套的依賴關係可修復此問題。假設當npm看到一個嵌套的dependency C.1
需要package A
(已經在devDependencies中聲明並可用)時,npm不會將dependency A
添加到dependency C.1
的node_modules目錄中。
問題
我看到我的本地機器上的問題是,運行在npm install <package> --save-dev
重新排序devDependencies包按字母順序,但爲了NPM工藝包及其依賴的問題。如果我檢查了這一點,那麼構建系統會遇到相同的文件路徑太長的錯誤。
即如果package A
來package C
和dependency C.1
需要package A
後,再故宮將增加package A
到dependency C.1
的node_modules文件夾。
我不知道這個重新排序是否只在我的機器上,因爲我之前沒有看到npm重新排序依賴關係。
有沒有人見過這個或知道如何制止這種行爲?
版本
節點:v0.10.32
NPM:v1.4.28
附註:我讀過,NPM 2.0或未來版本將分析依賴性的層次結構,找到重複的包,並且只在文件系統上引用它們一次,但此時不會升級到npm 2.0。
'npm shrinkwrap'有同樣的缺陷。 – Funkodebat 2014-11-14 16:53:27
@Funkodebat你注意到這是否是最近的變化?我記得看到npm只是追加到列表的底部。 – Jerry 2014-11-14 17:02:51
實際上它可能不存在於npm nemore,我有一段時間的舊版本。我最終創建了一個腳本,只要它檢測到'package就會調用'npm shrinkwrap'。json「發生了變化,否則它會不斷提交shrinkwrap,因爲它不斷重新生成 – Funkodebat 2014-11-14 17:05:17