我使用依賴於節點模塊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,它做了我想要的。
我使用依賴於節點模塊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,它做了我想要的。
進入node_modules
文件夾中依賴項A的package.json
文件,並確保它指定依賴項B是版本2.0.1。
此運行npm update
我不認爲這是一個很好的辦法做到這一點之後。您可以在項目文件夾中運行npm shrinkwrap
,然後轉至npm-shrinkwrap.json
並搜索程序包B
並將其版本更改爲2.0.1
。 npm shrinkwrap
所做的是鎖定相關版本,因此,無論何時更新其他軟件包,並且仍然與包A
和B
有相同問題,您需要再次運行npm shrinkwrap
。 當包B
解決了版本2.0.5
的問題時,您可以刪除npm-shrinkwrap.json
。
我知道我能做到這樣,但下一次我會做NPM安裝在我的整個項目(當我將採取一個新的克隆,從git倉庫),我會得到2.0.5再次版本。我想知道是否有一個解決方案沒有修改其他項目的package.json。 –
你可以嘗試添加這個特定的依賴到你的repo(仍然確保你.gitignore剩下的node_modules文件夾),這樣你總是可以獲得這個特定依賴的相同版本,即使你克隆到一個新的位置並執行'npm install' – James