CICD編譯時遇到npm error code EINTEGRITY的問題

場景

????????CICD編譯時拋出npm error code EINTEGRITY的錯誤

npm error code EINTEGRITY
npm error sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== integrity checksum failed when using sha512: wanted sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA== but got sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==. (318961 bytes)
npm error A complete log of this run can be found in: /root/.npm/_logs/2025-05-21T01_30_13_824Z-debug-0.log

解決

# 刪除 node_modules and package-lock.json
rm -rf node_modules package-lock.json# 清理和驗證 npm cache
npm cache clean --force
npm cache verify# 重新安裝
npm install

分析

? ? ? ? 在運行到npm install命令時,會看到進程失敗并顯示EINTEGRITY錯誤代碼。

????????錯誤示例輸出如下:????????

npm ERR! code EINTEGRITY
npm ERR! sha512-vjA...Azq==
integrity checksum failed when using sha512:wanted sha512-vjA...Azq==but got sha512-MjAA...LNsqvg==. (161379 bytes)npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/nsebhastian/.npm/_logs/2022-06-16T10_04_42_791Z-debug.log

? ? ? ? 這是因為運行npm install命令時,npm將查找package.json文件中列為依賴項的包,進行下載和安裝。

? ?當package-lock.json當目錄中有文件時,npm會將下載的tarball.tgz文件的校驗和與在package-lock.json文件中找到的校驗和進行對比。

????????當文件和package-lock.json文件EINTEGRITY之間的校驗和值不匹配時,就會發生如上所示的錯誤。

? ?這段錯誤消息大概意思是:npm說想要sha512……但得到的是sha512……

? ?wanted...中的值是在package-lock.json文件中找到的值。

????????got...npmtarball文件生成校驗和時得到的值。

兩種方法可以解決此錯誤

1. 刪除package-lock.json文件,并在安裝完成后讓npm生成一個新文件。

2. 更新package-lock.jso文件中列出的完整性值。搜索并替換文件中錯誤消息中的值,將想要的值sha512-vjA... 替換為sha512-MjAA...(最終選取該方法)

????????當然,如果文件中有很多EINTEGRITY錯誤時,這會很煩人。這種情況下直接刪除package-lock.json文件會更容易,因為npm無論如何都會生成一個新文件。

????????如果上述方法不起作用,可按照以下步驟清除節點模塊和npm緩存文件夾:

# remove node_modules and package-lock.json
rm -rf node_modules package-lock.json# Clear and verify npm cache
npm cache clean --force
npm cache verify# now run npm install again
npm install

校驗和值

????????校驗和值是從特定文件生成的字母數字哈希值,當文件內容改變時,校驗和值也會改變。

????????在npm包中,校驗和用于驗證下載的文件的完整性。

????????第一次將包安裝為依賴項時,npm將生成每個包的校驗和并將其存儲在文件中package-lock.json

下面是一個例子:

{"@babel/code-frame": {"version": "7.16.7","resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz","integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==","requires": {"@babel/highlight": "^7.16.7"}}
}

? ?integrity上面依賴關系圖中的屬性是通過對code-frame-7.16.7.tgz文件運行哈希sha512函數生成的

? ?npm install以后運行時,npm會再次對該code-frame-7.16.7.tgz文件運行哈希函數,看校驗和是否與屬性中的一致integrity

????????當值不同時,npm將拋出EINTEGRITY錯誤代碼。

????????這就是刪除package-lock.json文件有效的原因。因為這導致npm將直接跳過包的校驗和比較過程(直到下次npm install再次運行)

????????在npm版本5之前,校驗和是用sha1而不是生成的sha512

? ? ? ? 另外注意,有時npm也會EINTEGRITY因為不同的sha哈希值而產生警告,如下所示:

npm WARN registry Unexpected warning for https://registry.npmjs.org/: Miscellaneous Warning EINTEGRITY: sha1-UWbihk...TIIM= 
integrity checksum failed when using sha1: 
wanted sha1-UWbihk...TIIM= but got sha512-yJHVQEh...pWft6kWBBcqh0UA==. (11423 bytes)

????????這意味著package-lock.json文件中有sha1值,但npm生成sha512值。

????????這種情況下,需要刪除node_modules文件夾和package-lock.json文件才能解決警告。

????????如果使用的是舊版本的npm,請在再次嘗試安裝之前升級npm版本:

# upgrade npm version
npm install -g npm@latest# remove node_modules and package-lock.json
rm -rf node_modules package-lock.json# Clear and verify npm cache
npm cache clean --force
npm cache verify# now run npm install again
npm install

????????依次運行上述命令以解決錯誤EINTEGRITY

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/80867.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/80867.shtml
英文地址,請注明出處:http://en.pswp.cn/web/80867.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Spring Boot與Spring Security構建安全的RESTful API

使用Spring Boot與Spring Security構建安全的RESTful API 引言 在現代Web應用開發中,安全性是一個不可忽視的重要方面。Spring Boot和Spring Security為開發者提供了一套強大的工具,用于構建安全的RESTful API。本文將詳細介紹如何結合Spring Boot和Sp…

機器人拖動示教控制

機器人拖動示教控制 機器人拖動視角控制與軌跡記錄 1. 知識目標 體驗ES機器人拖動視角操作體驗ES機器人拖動軌跡記錄 2. 技能目標 掌握ES機器人拖動視角操作掌握ES機器人拖動軌跡記錄 3. ES機器人拖動視角操作 3.1 操作步驟 點擊“拖動視角”按鈕長按“啟用”鍵約3秒進入…

RuoYi-Vue3-FastAPI框架的功能實現(上)

RuoYi-Vue3-FastAPI框架的功能實現(上) 感謝大佬給出關于python后端的若依框架,希望這個簡單文檔能幫助到大家。 安裝與運行: 下載地址:Vue2版本: Gitte倉庫地址:RuoYi-Vue-FastAPI: 基于Vu…

Paimon和Hive相集成

Paimon版本1.17 Hive版本3.1.3 1、Paimon集成Hive 將paimon-hive-connector.jar復制到auxlib中,下載鏈接Index of /groups/snapshots/org/apache/https://repository.apache.org/snapshots/org/apache/paimon/ 通過flink進入查看paimon /opt/softwares/flink-1…

【Leetcode 每日一題】3362. 零數組變換 III

問題背景 給你一個長度為 n n n 的整數數組 n u m s nums nums 和一個二維數組 q u e r i e s queries queries,其中 q u e r i e s [ i ] [ l i , r i ] queries[i] [l_i, r_i] queries[i][li?,ri?]。 每一個 q u e r i e s [ i ] queries[i] queries[i]…

計算機視覺與深度學習 | 用于圖像分割的自監督學習(Self-Supervised Learning)方法綜述

圖像分割 用于圖像分割的自監督學習(Self-Supervised Learning)方法綜述**1. 背景與意義****2. 方法演進****3. 圖像分割子任務與SSL策略****4. 自監督預訓練任務分類****5. 基準數據集與評估指標****6. 挑戰與未來方向****總結**用于圖像分割的自監督學習(Self-Supervised …

Jenkins集成Docker與K8S構建

Jenkins 是一個開源的持續集成和持續交付(CI/CD)工具,廣泛用于自動化軟件開發過程中的構建、測試和部署任務。它通過插件系統提供了高度的可擴展性,支持與多種開發工具和技術的集成。 Jenkins 的核心功能 Jenkins 的主要功能包括自動化構建、測試和部署。它能夠監控版本控…

使用 adb 命令截取 Android 設備的屏幕截圖

使用 adb 命令截取 Android 設備的屏幕截圖。以下是兩種常見的方法: 方法一:截屏后保存到電腦 adb shell screencap -p /sdcard/screenshot.png adb pull /sdcard/screenshot.png解釋: adb shell screencap -p /sdcard/screenshot.png&…

參與開發的注意事項

1.開發期間,不要擅自修改架構的內容 使用技術官發的項目文件夾來開發,而不是自己建立項目, 否則會導致環境不統一 架構內容:(不能更改) 1.類型定義,全局變量聲明 2.函數申明(函數名稱…

linux安裝nginx和前端部署vue項目

1、打包前端項目 npm run build 執行完后會在根目錄下生成一個dist文件夾,這個dist文件夾就是我們后面要部署到nginx的東西。 2、將dist文件夾上傳到服務器中 自己建一個目錄,上傳即可(盡量不要在root目錄下,可能涉及權限問題…

親測有效!OGG 創建抽取進程報錯 OGG-08241,如何解決?

前言 今天在測試 OGG 一個功能的時候,需要重新初始化 oggca,所以重裝了一下 OGG。重建完之后重新添加抽取進程報錯,一直無法添加成功: 經過一翻分析,找到了解決方案,本文記錄一下解決過程。 問題描述 OG…

Docker構建 Dify 應用定時任務助手

概述 Dify 定時任務管理工具是一個基于 GitHub Actions 的自動化解決方案,用于實現 Dify Workflow 的定時執行和狀態監控。無需再為缺乏定時任務支持而感到困擾,本工具可以幫助設置自動執行任務并獲取實時通知,優化你的工作效率。 注意&…

ubuntu24.04+RTX5090D 顯卡驅動安裝

初步準備 Ubuntu默認內核太舊,用mainline工具安裝新版: sudo add-apt-repository ppa:cappelikan/ppa sudo apt update && sudo apt full-upgrade sudo apt install -y mainline mainline list # 查看可用內核列表 mainline install 6.13 # 安裝…

網絡爬蟲(Web Crawler)詳解

網絡爬蟲(Web Crawler)詳解 1. 基本概念與核心目標 定義: 網絡爬蟲是一種自動化的程序,通過HTTP協議訪問網頁,提取并存儲數據(如文本、鏈接、圖片),并根據策略遞歸訪問新鏈接。核心目標: 數據采集:抓取特定網站或全網公開數據。索引構建:為搜索引擎提供頁面內容(如…

大模型如何助力數學可視化?

大家好,我是 i 學習的老章 在數學學習和教學中,將抽象概念可視化對于理解至關重要。Manim 是一個強大的數學動畫引擎,由著名數學科普視頻作者 3Blue1Brown 開發并廣為人知。 老章較早之前就介紹過 manim:B 站上爆紅的數學視頻&a…

Oracle基礎知識(二)

目錄 1.聚合函數 2.COUNT(1)&COUNT(*)&COUNT(字段)區別(面試常問) 3.分組聚合——group by 4.去重:DISTINCT 、GROUP BY 5.聚合函數的過濾HAVING 6.oracle中having與where的區別 (面試常問) 7.ROUND與TRUNC函數 8.ROLLUP上卷…

DTAS 3D多約束裝配助力懸架公差分析尺寸鏈計算:麥弗遜/雙叉臂/多連桿/H臂一網打盡

摘要:汽車四輪定位參數與懸架密切相關。汽車懸架對于車輛的行駛性能、安全性和舒適性至關重要。DTAS 3D提供了各類型懸架的公差仿真分析方法。 關鍵字:DTAS 3D、前后懸架、公差仿真分析、 運動耦合 一、懸架公差分析綜述 懸架是車身(或車架…

Serverless爬蟲架構揭秘:動態IP、冷啟動與成本優化

一、問題背景:舊技術的瓶頸 在傳統爬蟲架構中,我們通常部署任務在本地機器或虛擬機中,搭配定時器調度任務。雖然這種方式簡單,但存在以下明顯缺陷: 固定IP易被封禁:目標網站如拼多多會通過IP頻率監控限制…

設備預測性維護的停機時間革命:中訊燭龍如何用AI重構工業設備管理范式

在工業4.0的智能化浪潮中,非計劃停機每年吞噬企業3%-8%的產值。中訊燭龍預測性維護系統通過多模態感知矩陣分布式智能體的創新架構,實現設備健康管理的范式躍遷,幫助制造企業將停機時間壓縮70%以上。本文將深度解析技術實現路徑與行業級實踐方…

Java面試攻略:從Spring Boot到微服務架構的深入探討

Java面試攻略:從Spring Boot到微服務架構的深入探討 場景設定 在一家知名互聯網大廠的會議室里,資深面試官王老師正在對一位求職者謝飛機進行技術面試。謝飛機是一位幽默風趣的程序員,他的回答有時讓人捧腹大笑。 第一輪:核心技…