1. 程式人生 > 實用技巧 >npm ci命令解析

npm ci命令解析

一、用途

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。



本文分享到這裡,給朋友們推薦一個前端公眾號