2017-02-15 156 views
0

我使用依賴於節點模塊B的節點模塊A.節點模塊A依賴於版本高於2.0.1的B。但是,有2.0.5版本,這是最新版本。 2.0.5版本與我的程序不兼容,我想獲得特定版本2.0.1而不是2.0.5。當我做npm安裝時,我得到2.0.5版本。有沒有什麼辦法可以讓npm install獲得最低版本的軟件包而不是最高?如何使npm不依賴於依賴關係

編輯:我用yarn而不是npm,它做了我想要的。

回答

0

進入node_modules文件夾中依賴項A的package.json文件,並確保它指定依賴項B是版本2.0.1。

此運行npm update

+0

我知道我能做到這樣,但下一次我會做NPM安裝在我的整個項目(當我將採取一個新的克隆,從git倉庫),我會得到2.0.5再次版本。我想知道是否有一個解決方案沒有修改其他項目的package.json。 –

+0

你可以嘗試添加這個特定的依賴到你的repo(仍然確保你.gitignore剩下的node_modules文件夾),這樣你總是可以獲得這個特定依賴的相同版本,即使你克隆到一個新的位置並執行'npm install' – James

0

我不認爲這是一個很好的辦法做到這一點之後。您可以在項目文件夾中運行npm shrinkwrap,然後轉至npm-shrinkwrap.json並搜索程序包B並將其版本更改爲2.0.1npm shrinkwrap所做的是鎖定相關版本,因此,無論何時更新其他軟件包,並且仍然與包AB有相同問題,您需要再次運行npm shrinkwrap。 當包B解決了版本2.0.5的問題時,您可以刪除npm-shrinkwrap.json

https://docs.npmjs.com/cli/shrinkwrap