npm ci 是 Node 包管理器(NPM)中的一個命令,它代表「NPM Clean Install」(NPM 清潔安裝)。它用於從 package-lock.json 文件中安裝軟體包。它類似於 npm install,但是不同的是,它不是從 package.json 文件中讀取信息,而是從 package-lock.json 文件中讀取,該文件包含了所有軟體包及其依賴項的精確記錄,包括特定版本。它使用 package.json 只是為了驗證是否存在版本不匹配的情況。
npm ci 命令旨在用於連續集成(CI)和自動構建環境中,確保依賴項每次都完全相同,並且不會出現不同版本軟體包之間的不匹配或衝突。
與 npm install 相比,此命令更快,更可靠,因為它跳過一些步驟,例如依賴項解析和網路遍歷,並且基於鎖定文件中指定的確切版本號以確定的方式安裝軟體包。同時,還提供了如何在 Ubuntu 22.04 或 20.04 上安裝 PNPM 的相關信息。
儘管npm ci命令與npm install相似,但有一些關鍵的不同之處:
npm ci的別名為 npm clean-install、npm ic、npm install-clean和npm isntall-clean。您可以使用這些任何一個別名來開始使用此命令行工具。 要使用它,您的項目文件夾必須具有package lock文件和最新的安裝:
cd your-project
使用 npm ci 命令的區別
運行
npm install
開始使用
npm ci
1. npm ci 安裝確切的軟體包版本
與 npm install
不同,npm ci
將軟體包完全按照 package-lock.json 文件中指定的版本安裝。這樣可以確保項目中所有開發人員使用的依賴庫版本相同,便於版本管理。
2. npm ci 不使用緩存
npm install
使用本地緩存來加快安裝速度,但 npm ci
不使用該緩存。它直接從註冊表下載軟體包,確保安裝的軟體包與鎖定文件中指定的軟體包完全相同,避免了版本不匹配或衝突的情況。
3. npm ci 先刪除 node_modules 目錄
在安裝軟體包之前,npm ci
會刪除 node_modules
目錄,並從頭開始安裝依賴項。這有助於確保沒有來自先前安裝的過時依賴項。
4. npm ci 比 npm install 更快
由於它不使用緩存並安裝確切的軟體包版本,npm ci
可以比 npm install
更快。這在 CI/CD(持續集成/持續部署)流水線中尤其重要,其中速度和一致性非常關鍵。在某些情況下,npm ci
比 npm install
快兩倍。
要了解「Clean Install 或 CI」的詳細命令行語法,請參閱官方文檔。如果您正在處理大型項目或具有許多依賴項的項目,可以開始使用 npm ci
,因為它可以幫助消除版本不匹配或衝突的風險。