Vue?package-lock.json的作用及說(shuō)明
vue package-lock.json的作用
package-lock.json有什么作用呢?
簡(jiǎn)單理解就是鎖定dependencies的版本號(hào)。
一般來(lái)說(shuō)前端的項(xiàng)目都有一個(gè)package.json文件管理依賴的版本號(hào),在package.json文件里我們可以看到依賴的版本號(hào)前面一半有^和~這些符號(hào)。
- ^:鎖定大版本號(hào),比如是^6.2.2,會(huì)匹配所有6.x.x的版本,更新的時(shí)候會(huì)下載最新的版本號(hào)
- ~:鎖定前面兩個(gè)版本號(hào),比如是^6.2.2,會(huì)匹配所有6.2.x的版本,更新的時(shí)候會(huì)下載最新的版本號(hào)
- *:安裝最新的版本號(hào)。
不同的下載時(shí)間、npm下載源不一樣或者不同機(jī)器,下載得到的nodejs依賴包有可能不一樣。
所以這時(shí)候package-lock.json的作用就出來(lái)了。
它就是固定當(dāng)前的版本,確保你安裝的包不會(huì)因?yàn)樵谛碌臋C(jī)器上或者新的
下載源下載依賴包時(shí)不一致,這在開(kāi)發(fā)、部署或者多人協(xié)作時(shí)會(huì)減少很多不必要的麻煩。
我們舉個(gè)例子
當(dāng)前測(cè)試的project的依賴如下
"devDependencies": { "dayjs": "~1.9.4", "file-saver": "^1.2.0", "lodash": "*" },
一般來(lái)說(shuō)新建的項(xiàng)目是沒(méi)有package-lock.json這個(gè)文件,執(zhí)行npm install時(shí)候它會(huì)自動(dòng)生成。
執(zhí)行npm install后,我們?nèi)ode-modules目錄看下這三個(gè)包的版本號(hào)。
"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的版本號(hào)是一樣的。
dayjs匹配到了1.9.x的最新版本,file-saver匹配到了1.x.x的最新版本,lodash匹配到了最新的版本。
當(dāng)我們需要去更新依賴包的版本時(shí),可以通過(guò)執(zhí)行npm install xxx@x.x.x實(shí)現(xiàn),package-lock.json也會(huì)隨之更新。
我本地的npm版本是6.10.2,在package.json中直接修改版本號(hào),然后npm install,也可以實(shí)現(xiàn)依賴包的版本和package-lock.json更新。
網(wǎng)上有說(shuō)法是5版本后不支持這種改法了。
如果下載依賴用的是yarn install,那用的就是yarn.lock文件。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue項(xiàng)目設(shè)置打包后的靜態(tài)文件訪問(wèn)路徑
這篇文章主要介紹了vue項(xiàng)目設(shè)置打包后的靜態(tài)文件訪問(wèn)路徑,vue項(xiàng)目的最終項(xiàng)目文件需要經(jīng)過(guò)打包輸出,靜態(tài)文件的訪問(wèn)路徑需要在vue.config.js文件中設(shè)置,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-02-02vue動(dòng)態(tài)繪制四分之三圓環(huán)圖效果
這篇文章主要介紹了vue動(dòng)態(tài)繪制四分之三圓環(huán)圖效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-09-0922個(gè)Vue優(yōu)化技巧(項(xiàng)目實(shí)用)
演示代碼使用 Vue3 + ts + Vite 編寫,但是也會(huì)列出適用于 Vue2 的優(yōu)化技巧,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09vue3中使用props和emits并指定其類型與默認(rèn)值
props是Vue3中的一個(gè)重要概念,它允許我們將數(shù)據(jù)從父組件傳遞到子組件,下面這篇文章主要給大家介紹了關(guān)于vue3中使用props和emits并指定其類型與默認(rèn)值的相關(guān)資料,需要的朋友可以參考下2023-04-04