yarn降版本 npm依賴版本鎖定和管理

2021-10-13 06:50:04 字數 2794 閱讀 5940

如果你也是使用vue可能需要注意以下依賴:

"vue-loader": "9.9.5",

"vue-style-loader": "1.0.0",

"vue": "2.1.8",

"vue-template-compiler": "2.1.8"

針對這種依賴公升級解決方法:

只發布編譯後的檔案

這樣測試同學就無需關心,公升級依賴後再重新打包發布。

優點: 測試同學無需關注依賴安裝

缺點: 產出目錄充斥著各種版本的檔案,增量儲存repo越來越大

不通過包管理工具,直接把 node_modules打包,測試環境解壓,每次公升級依賴重新發布

開發直接把 node_modules 打成tar包, 部署的時候解壓然後,再通過 npm run test打包測試. 一般現在乙個專案乙個node_modules打包後幾十m(gzip之後),更新依賴之後解壓。

好處: 無網路

壞處: 有一些c++的npm包,在不同的系統環境下是不同的,因此在osx下的node_modules,在ubuntu失效。 好在我們的專案沒有這種依賴包,所以也可以做一種方案。若有c++的包,則需要在本地裝虛擬環境,如vagrant或docker跑測試對應的環境. 每當此時心裡總是在想,咱還是前端開發嗎[捂臉]

包管理工具鎖死

node發展歷程**現了幾種方式來做版本鎖定, 以下面package.json為例

"name": "npm-lock",

"version": "0.0.1",

"description": "test dependies lock way",

"main": "index.js",

"scripts": ,

"dependencies": {

"vue": "^2.2.0"

npm-shrinkwrap.json

package-lock.json

yarn.lock

命令npm shrinkwrap無無

生成方式

需要命令生成

npm安裝自動生成

yarn安裝自動生成

npm版本

任意》=5.0.0

任意額外安裝無無

yarn

增加依賴

npm i -s [email protected] && npm shrinkwrap

npm i -s [email protected]

yarn add [email protected]

更新npm uni -s vue && npm i -s [email protected]

npm uni -s vue&& npm i -s [email protected]

yarn upgrade [email protected]

刪除npm uni -s vue

npm uni -s vue

yarn remove vue

發布支援

不支援支援

離線不支援

不支援支援

快取不支援

不支援支援

npm shrinkwrap

node: v6.10.2

npm: 3.10.10

npm i [email protected] -s, 檢視node_modules vue版本是2.2.0

npm官方提供 npm shrinkwrap命令,生成 npm-shrinkwrap.json檔案。

下面對依賴做增加,刪除,修改的操作,看看 npm-shrinkwrap.json變化

1. 增加依賴

npm i [email protected] -s, npm-shrinkwrap.json 自動將vue-http及其依賴新增進去

2. 刪除依賴

npm uni vue-http -s, 刪除的時候自動刪除npm-shrinkwrap.json中的vue-http及其依賴; 若忘了加 -s 或 -d, 則無法刪除, 不夠智慧型。

3. 公升級/降級依賴

npm up [email protected] -s ,公升級依賴,依賴沒有公升級,npm-shrinkwrap.json無更新,略顯雞肋。所以更新的話,直接通過上述方式刪除,再新增吧。

4. 結果

優點:npm天然支援

缺點:需要手動觸發,update不生效

yarn

重新把npm shrinkwrap驗證邏輯跑一遍.

1. 新增依賴

yarn add [email protected] [email protected]的時候,自動生成了 yarn.lock檔案及其相關依賴

2. 刪除依賴

yarn remove vue-http, 自動刪除依賴

3. 更新依賴

yarn upgrade [email protected], 依賴更新成功, yarn.lock版本更新成功

4. 結果

優點: 通過yarn命令操作,可以自動更新yarn.lock,從快取中讀取速度快. 支援離線模式

package-lock.json

1. 增加依賴

npm i [email protected] -s, 自動生成的package-lock.json 自動將vue-http及其依賴新增進去

2. 刪除依賴

npm uni vue-http -s, 刪除的時候,自動刪除package-lock.json中的vue-http及其依賴; 不需要加 -s -d

3. 公升級/降級依賴

npm up [email protected] -s ,公升級依賴,依賴沒有公升級,package-lock.json無更新,。所以更新的話,直接通過上述方式刪除,再新增吧。是npm update的問題

4. 結果

優點:npm天然支援, 比較智慧型。

總結推薦閱讀

NPM如何管理依賴包版本?

這是conardli的第 69 篇原創,謝謝你的支援!nodejs成功離不開npm優秀的依賴管理系統。在介紹整個依賴系統之前,必須要了解npm如何管理依賴包的版本,本文將介紹npm包的版本發布規範以 何管理各種依賴包的版本以及一些關於包版本的最佳實踐。重新上傳 取消你可以執行npm view pac...

npm指定版本

在npm中安裝固定的版本號package,只需要在其後加 版本號 cnpm i vant 2.2.1 s或者在package.json上寫入版本 1.版本號基本格式 主號.次號.修補號 2.版本號規則 1 version 指定版本號 vue clipboard2 0.0.8 指定所依賴的該元件必須是...

依賴的版本

清晰使用的語義化版本的介紹,特別建議閱讀下最後的關於 修飾符的版本介紹,可能大部分人的理解都是錯的.yarn 裡的包遵守 語義化版本,也叫 semver 當你從資源庫安裝乙個新包,它會和語義版本範圍一起被新增到你的 package.json。版本號可以劃分為主版本號.次版本號.修訂號,類似這些 3....