Vue?package-lock.json的作用及說明
vue package-lock.json的作用
package-lock.json有什么作用呢?
簡單理解就是鎖定dependencies的版本號。
一般來說前端的項目都有一個package.json文件管理依賴的版本號,在package.json文件里我們可以看到依賴的版本號前面一半有^和~這些符號。
- ^:鎖定大版本號,比如是^6.2.2,會匹配所有6.x.x的版本,更新的時候會下載最新的版本號
- ~:鎖定前面兩個版本號,比如是^6.2.2,會匹配所有6.2.x的版本,更新的時候會下載最新的版本號
- *:安裝最新的版本號。
不同的下載時間、npm下載源不一樣或者不同機(jī)器,下載得到的nodejs依賴包有可能不一樣。
所以這時候package-lock.json的作用就出來了。
它就是固定當(dāng)前的版本,確保你安裝的包不會因為在新的機(jī)器上或者新的
下載源下載依賴包時不一致,這在開發(fā)、部署或者多人協(xié)作時會減少很多不必要的麻煩。
我們舉個例子
當(dāng)前測試的project的依賴如下
"devDependencies": {
"dayjs": "~1.9.4",
"file-saver": "^1.2.0",
"lodash": "*"
},一般來說新建的項目是沒有package-lock.json這個文件,執(zhí)行npm install時候它會自動生成。
執(zhí)行npm install后,我們?nèi)ode-modules目錄看下這三個包的版本號。
"dayjs": "1.9.8",
"file-saver": "1.3.8",
"lodash": "4.17.21"再看下生成的package-lock.json文件
"dependencies": {
"dayjs": {
"version": "1.9.8",
"dev": true
},
"file-saver": {
"version": "1.3.8",
"dev": true
},
"lodash": {
"version": "4.17.21",
"dev": true
}
}node_module依賴包的版本和package-lock.json的版本號是一樣的。
dayjs匹配到了1.9.x的最新版本,file-saver匹配到了1.x.x的最新版本,lodash匹配到了最新的版本。
當(dāng)我們需要去更新依賴包的版本時,可以通過執(zhí)行npm install xxx@x.x.x實現(xiàn),package-lock.json也會隨之更新。
我本地的npm版本是6.10.2,在package.json中直接修改版本號,然后npm install,也可以實現(xiàn)依賴包的版本和package-lock.json更新。
網(wǎng)上有說法是5版本后不支持這種改法了。
如果下載依賴用的是yarn install,那用的就是yarn.lock文件。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue金融數(shù)字格式化(并保留小數(shù))數(shù)字滾動效果實現(xiàn)
這篇文章主要介紹了Vue金融數(shù)字格式化(并保留小數(shù)) 數(shù)字滾動效果,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
基于element-ui中el-select下拉框選項過多的優(yōu)化方案
這篇文章主要介紹了基于element-ui中el-select下拉框選項過多的優(yōu)化方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-04-04
vue項目input標(biāo)簽checkbox,change和click綁定事件的區(qū)別說明
這篇文章主要介紹了vue項目input標(biāo)簽checkbox,change和click綁定事件的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
element-ui自定義message-box自定義樣式不生效的解決
這篇文章主要介紹了element-ui自定義message-box自定義樣式不生效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09
Vue Element前端應(yīng)用開發(fā)之功能點管理及權(quán)限控制
在一個業(yè)務(wù)管理系統(tǒng)中,如果我們需要實現(xiàn)權(quán)限控制功能,我們需要定義好對應(yīng)的權(quán)限功能點,然后在界面中對界面元素的功能點進(jìn)行綁定,這樣就可以在后臺動態(tài)分配權(quán)限進(jìn)行動態(tài)控制了,權(quán)限功能點是針對角色進(jìn)行控制的,也就是簡稱RBAC(Role Based Access Control)。2021-05-05

