Watch at Ease看見世界,讀懂生活。

科技 · 實用指南

npm 顯示 EINTEGRITY?重設前先追查預期與實際收到的 tarball

校驗和不一致可能來自舊 lock 條目、損壞的本機快取、私有 registry 或代理回傳不同位元組,也可能是套件中繼資料變更。先保存證據,確認精確來源,再只修復失敗邊界。

原創圖:比較 lockfile 預期摘要與 npm 收到的 tarball 摘要。
原創示意圖:修改前先保存 EINTEGRITY 的兩側。 Watch at Ease

EINTEGRITY 表示 npm 對收到的套件位元組計算出的摘要,與預期摘要不同。這個錯誤是證據,不是立刻刪除 package-lock.json、關閉 TLS 檢查或清空全部快取的指令。

建立位元組來源帳本:保存失敗套件、wanted/got 摘要、位元組數、lockfile 來源與 integrity、目前 registry、npm 版本及隔離快取重試結果。

把不一致保存成來源記錄

記錄套件、版本、wanted/got 摘要、位元組數、npm/Node 版本、命令、平台與 debug log 路徑。讀取 registry 與 cache 設定,但不要洩露 token。

在 package-lock.json 找出 resolved 與 integrity。lockfile 是預期一側;測試收到的資料時先保持不變。

清除前先驗證本機快取

執行 npm cache verify 與 npm doctor cache。內容定址與完整性檢查的結果可區分本機邊界。

用新的空快取重複安裝。成功則隔離舊快取;同一 got 摘要重現則表示舊快取不是唯一來源。

比較直連與目前 registry 路徑

依 resolved URL 與 registry 設定確認 npm 經過 npmjs、私有 registry、Verdaccio 或其他代理。不要關閉 strict SSL。

在受控環境經批准直連與代理取得同一套件,計算 SHA-512,比較位元組數、重新導向與內容類型。

區分 lockfile 漂移、快取損壞與 registry 變更

隔離快取符合 lockfile,邊界在舊快取或檔案系統;直連符合而代理不符時,保存代理記錄並只失效受影響 artifact。

若批准來源都不符合已提交 integrity,調查重新發布、錯誤鏡像或有意變更;團隊接受來源變更後才重建 lockfile。

以可重現 CI 證據結案

以相同 lockfile 與 registry 重試,記錄退出碼、快取路徑與最終摘要,確認 lockfile 未意外變更。

CI 快取鍵區分 lockfile hash 與 registry,並保存首次失敗記錄。刪除證據後變綠不能解釋不同位元組。

原創決策樹:區分本機快取、代理、來源變化與未知故障。
原創示意圖:同一校驗錯誤有四種修復邊界。 Watch at Ease