npm ci命令的基本使用方法
偶爾發(fā)現(xiàn)npm ci命令,使用下感覺比npm i快了許多,于是也來了解下該命令。
一、用途
npm ci和npm install命令一樣,是用來安裝依賴的命令,但他可以比常規(guī)的 npm 安裝快得多,也比常規(guī)安裝更嚴格,他可以npm依賴安裝的一致和穩(wěn)定 (鎖版本)。
在package.json中,每次install后,對應(yīng)的版本前都有個 ^ 符號。在這種情況下,你再次install時安裝的包的版本可能與前次不一樣,具體的,你可以到package-lock.json中查看實際的包版本。
^的匹配規(guī)則是:>= 當前版本,且保持從左至右的第一個非零版本。舉例說明:
"^1.2.3": 大于等于 1.2.3 且小于 2.0.0版本
"^0.3.4": 大于等于 0.3.4 且小于 0.4.0版本
"^0.0.6": 大于等于 0.0.6 且小于 0.0.7版本
若我們一直使用install命令時,便會遇到開發(fā)和測試、發(fā)布時包版本不同的問題,這種細微的差別往往會導(dǎo)致嚴重的結(jié)局。
二、用法
在npm i(install)的地方改用npm ci,當然項目中必須有一個package-lock.json或npm-shrinkwrap.json。
注:npm版本要>=5.7。
三、區(qū)別
npm ci與npm i主要有以下的區(qū)別。
- npm i依賴package.json,而npm ci依賴package-lock.json。
- 當package-lock.json中的依賴于package.json不一致時,npm ci退出但不會修改package-lock.json。
- npm ci只可以一次性的安裝整個項目依賴,但無法添加單個依賴項。
- npm ci安裝包之前,會刪除掉node_modules文件夾,因此他不需要去校驗已下載文件版本與控制版本的關(guān)系,也不用校驗是否存在最新版本的庫,所以下載的速度更快。
- npm安裝時,不會修改package.json與package-lock.json。
該命令在去年2月份就出了,居然現(xiàn)在才了解到,實在是懺愧。
總結(jié)
到此這篇關(guān)于npm ci命令的基本使用方法的文章就介紹到這了,更多相關(guān)npm ci命令內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nodejs獲取微信小程序帶參數(shù)二維碼實現(xiàn)代碼
這篇文章主要介紹了nodejs獲取微信小程序帶參數(shù)二維碼實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-04-04Node.js中的async?和?await?關(guān)鍵字微任務(wù)和宏任務(wù)
這篇文章主要介紹了Node.js中的async和await關(guān)鍵字微任務(wù)和宏任務(wù),文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-07-07nodeJS?express路由學(xué)習req.body與req.query方法實例詳解
這篇文章主要為大家介紹了nodeJS?express路由學(xué)習req.body與req.query方法實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Node.js視頻流應(yīng)用創(chuàng)建之后端的全過程
這篇文章主要給大家介紹了關(guān)于創(chuàng)建Node.js視頻流應(yīng)用之后端的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下2022-03-03