偶爾發現npm ci命令,使用下感覺比npm i快了許多,于是也來了解下該命令。
一、用途
npm ci和npm install命令一樣,是用來安裝依賴的命令,但他可以比常規的 npm 安裝快得多,也比常規安裝更嚴格,他可以npm依賴安裝的一致和穩定 (鎖版本)。
在package.json中,每次install后,對應的版本前都有個 ^ 符號。在這種情況下,你再次install時安裝的包的版本可能與前次不一樣,具體的,你可以到package-lock.json中查看實際的包版本。
^的匹配規則是:>= 當前版本,且保持從左至右的第一個非零版本。舉例說明:
"^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命令時,便會遇到開發和測試、發布時包版本不同的問題,這種細微的差別往往會導致嚴重的結局。
二、用法
在npm i(install)的地方改用npm ci,當然項目中必須有一個package-lock.json或npm-shrinkwrap.json。
注:npm版本要>=5.7。
三、區別
npm ci與npm i主要有以下的區別。
- 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文件夾,因此他不需要去校驗已下載文件版本與控制版本的關系,也不用校驗是否存在最新版本的庫,所以下載的速度更快。
- npm安裝時,不會修改package.json與package-lock.json。
該命令在去年2月份就出了,居然現在才了解到,實在是懺愧。
總結
到此這篇關于npm ci命令的基本使用方法的文章就介紹到這了,更多相關npm ci命令內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.zhuyuntao.cn/npm-ci命令