1. 程式人生 > 其它 >npm編譯提示"[email protected]"錯誤解決辦法

npm編譯提示"[email protected]"錯誤解決辦法

本地編譯都成功,拿到jenkins編譯就報錯,本次原因是package-lock.json未上傳,導致依賴不一致出問題.

錯誤樣本

npm ERR! code ELIFECYCLE
npm ERR! errno 2
npm ERR! [email protected] build: `webpack --progress --hide-modules --config build/webpack.prod.config.js`
npm ERR! Exit status 2
npm ERR!
npm ERR! Failed at the [email protected] build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2022-12-06T01_10_27_870Z-debug.log

什麼是lock檔案

生成鎖定檔案
在​package.json​ npm 和 Yarn 跟蹤專案依賴項的檔案中,版本號並不總是準確的。相反,您可以定義一系列版本。這樣,您可以選擇包的特定主要和次要版本,但允許 npm 安裝可能修復某些錯誤的最新補丁。

在語義版本控制的理想世界中,補丁版本不會包含任何破壞性更改。但不幸的是,情況並非總是如此。npm 採用的策略可能會導致兩臺機器以相同的package.json檔案結束,但安裝了不同版本的軟體包——這可能會引入錯誤。

為避免包版本不匹配,確切安裝的版本被固定在包鎖定檔案中。每次新增模組時,npm 和 Yarn 分別建立(或更新)一個package-lock.json和yarn.lock檔案。這樣,您可以保證另一臺機器安裝完全相同的軟體包,同時仍然具有package.json.

解決辦法
方法1

npm編譯就把開發鎖定版本的package-lock.json檔案也傳到新伺服器或jenkins編譯目錄,再重新編譯
yarn就是package-lock

方法2

node_modules臨時copy過去覆蓋有問題的機器