npm編譯提示"[email protected]"錯誤解決辦法
阿新 • • 發佈:2022-12-08
本地編譯都成功,拿到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過去覆蓋有問題的機器