เมื่อฉันเรียกใช้ "npm install" จะกลับมาพร้อมกับ "ERR! รหัส EINTEGRITY` (npm 5.3.0)


137

sudo npm installฉันได้รับข้อผิดพลาดนี้ในขณะที่ทำงาน บนเซิร์ฟเวอร์ของฉันมีการติดตั้ง npm ก่อนหน้านี้ ฉันพยายามลบpackage-lock.jsonไฟล์และเรียกใช้npm cache clean --forceแต่ไม่ได้ผล

เวอร์ชัน npm ของฉันคือ 5.3.0

ข้อผิดพลาด:

npm ERR! code EINTEGRITY
npm ERR! sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== integrity checksum failed when using sha512: wanted sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA== but got sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==. (65117 bytes)

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ubuntu/.npm/_logs/2017-11-29T05_33_52_182Z-debug.log

ดูวิธีแก้ปัญหาด้านล่างเพื่อหลีกเลี่ยงสาเหตุของปัญหาโดยเฉพาะอย่างยิ่งเมื่อมีการเชื่อมต่อเป็นปัญหา
SherylHohman

ในกรณีของฉันมันทำงานได้เพียงแค่เรียกใช้คำสั่งอีกครั้ง!
kds23

1
การรันคำสั่ง 2 คำสั่งต่อไปนี้ช่วยแก้ปัญหาของฉันได้ $ rm -rf package-lock.json node_modules $ npm install
Rao

คำตอบ:


202

ดูhttps://github.com/npm/npm/issues/16861

สิ่งนี้ใช้ได้ผลสำหรับฉัน:
npm cache verify

จากนั้นฉันก็วิ่งใหม่:
npm install -g create-react-app

และติดตั้งตามที่คาดไว้: แก้ไขปัญหาแล้ว


วิธีแก้ปัญหาอื่น ๆ ที่กล่าวถึงในปัญหา githubได้แก่ :

npm cache clean --force

หรือ

การลบโฟลเดอร์ npm และ npm-cache ในUsers%username%\AppData\Roaming(windows 7) และเรียกใช้npm install

หรือ

อัปเดต npm โดยทาง npm i -g npm

หรือ

ลบ package-lock.json

หรือ

npm cache verify

หรือ

npm cache clean

หรือ

ทำตามขั้นตอนเหล่านี้เพื่อแก้ไขปัญหา:

  1. ค้นหาแพ็คเกจที่ล้าสมัยและธีมการอัปเดตทั้งหมด:
    npm outdated -g
    sudo npm i -g outDatedPKG
  2. อัปเกรด npm เป็นเวอร์ชันล่าสุดด้วย:
    sudo npm i -g npm
  3. ลบpackage-lock.jsonไฟล์
  4. ลบ_cacacheไดเร็กทอรีใน~/.npm: npm cache verify
  5. ทุกครั้งที่ฉันได้รับข้อผิดพลาดนั้นให้ทำขั้นตอนที่ 2 และ 3
  6. หากคุณยังคงได้รับข้อผิดพลาดให้ล้างแคชของ npm:
    npm cache clean --force

หรือ

  1. เพิ่มพร็อกซี.npmrcใน~ไดเร็กทอรี:

proxy=http://localhost:8123
https-proxy=http://localhost:8123

  1. ลองอีกครั้ง! การเชื่อมต่ออินเทอร์เน็ตที่ช้าและการเซ็นเซอร์อาจทำให้เกิดปัญหาที่น่าเกลียดนี้

หรือ

npm cache clear --force && npm install --no-shrinkwrap --update-binary

หรือ

npm config set package-lock false


1
ขอบคุณ! นั่นเป็นประโยชน์มากและฉันแก้ปัญหาในการเลือกตัวเลือกที่กำหนด
jfajunior

สุดยอด !! ดีใจที่ได้ช่วยเหลือ :-)
SherylHohman

3
Sheryl อันดับแรก: ขอบคุณที่สละเวลาตอบคำถามนี้ เห็นได้ชัดว่าคำตอบของคุณมีประโยชน์ต่อผู้คน ฉันขอถามคุณได้ไหมว่าแต่ละทางเลือกเหล่านี้ทำหน้าที่อะไรและทำไมบางอย่างถึงได้ผลเมื่อคนอื่นไม่ทำ ขอบคุณ!
Andres F.

1
@AndresF ฉันไม่มีความเข้าใจอย่างลึกซึ้งว่าส่วนล่างของเส้นด้ายทำงานอย่างไรหรือเมื่อใด / เหตุใดวิธีการบางอย่างจึงใช้ได้ผลกับวิธีอื่น ในบางกรณีพวกเขาทำสิ่งเดียวกันเป็นหลัก แต่จะกระตุ้นด้วยวิธีอื่น ฉันเชื่อมโยงกับปัญหา github ที่มีการนำเสนอโซลูชันเหล่านี้ทั้งหมด - เป็นที่มาของรายการที่รวบรวมไว้ในคำตอบของฉัน ฉันขอแนะนำให้ค้นคว้าเกี่ยวกับจุดด้อยของเส้นด้ายและ npm หรือตรวจสอบปัญหา github ที่เชื่อมโยงกันอาจติดต่อผู้เขียนแต่ละคนหากจำเป็น
SherylHohman

ในกรณีที่การอัปเดตใด ๆ ในเวอร์ชัน node js ในเครื่องโลคัลมันจะผ่านข้อผิดพลาดนี้
gnganpath

46

ลบไฟล์ package-lock.json แล้วลองติดตั้ง


ขอบคุณสำหรับความคิดเห็นนี้ซึ่งช่วยฉันแก้ปัญหาได้เมื่อฉันปรับใช้ไซต์ GatsbyJS กับ Netlify
sathishpaul

พยายามทั้งหมดข้างต้นและนี่คือทางออก!
Adam Boczek

ใช่มันใช้งานได้หลังจากลบ package-lock.jason และรันการติดตั้ง npm อีกครั้ง
CJM

25

อันที่จริงข้างต้นเกี่ยวข้องกับการเชื่อมต่อเครือข่ายที่อยู่ด้านข้างเซิร์ฟเวอร์ เมื่อฉันเชื่อมต่อเซิร์ฟเวอร์ได้ดีการติดตั้ง npm ก็ทำได้ดีและไม่เกิดข้อผิดพลาดใด ๆ


1
ของฉันใช้งานได้หลังจากเปลี่ยนไปใช้การเชื่อมต่อ VPN ดังนั้นจึงเป็นปัญหาการเชื่อมต่ออย่างแน่นอน
bmukorera

13

ปัญหาของฉันมี 2 อย่าง:

  1. ไฟล์ package-lock.json ไม่ถูกต้อง
  2. การมีอยู่ของ npm-shrinkwrap.json ร่วมกับไฟล์ package-lock.json

สิ่งที่ฉันทำคือ:

  1. ลบไฟล์ package-lock.json
  2. ลบไฟล์ npm-shrinkwrap.json
  3. รันการติดตั้ง npm อีกครั้ง (ซึ่งสร้างไฟล์ล็อกแพ็กเกจที่ดีขึ้นใหม่)

แก้ไขข้อผิดพลาดของฉัน!


ฉันมีปัญหานี้ในการสร้าง AWS Codebuild สิ่งนี้ได้ผลสำหรับฉัน ขอบคุณ
bertie

11

ปัญหาเกิดขึ้นจริงpackage-lock.jsonและหลังจากแทนที่ด้วยเวอร์ชันที่ใช้งานได้จากสาขาอื่นแล้วมันก็ใช้ได้

สิ่งที่น่าสนใจคือการได้เห็นความแตกต่าง:

diff

ดังนั้นจึงมีการตรวจสอบความสมบูรณ์ในการpackage-lock.jsonตรวจสอบว่าไฟล์ที่คุณกำลังดาวน์โหลดไม่ได้ถูกดัดแปลง เพียงแค่ว่าการตรวจสอบความสมบูรณ์ถูกแทนที่package-lock.jsonด้วย SHA1 แทนการตรวจสอบ SHA-512 ฉันไม่รู้ว่ามันเกิดขึ้นได้อย่างไร

ในกรณีที่คุณไม่ได้มีรุ่นที่ทำงานในสาขาอื่น พิจารณาข้อความ

npm ERR! code EINTEGRITY
npm ERR!
  sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
integrity checksum failed when using sha512: wanted
  sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==
but got
  sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==
. (65117 bytes)

ค้นหาแพ็กเกจโดยการตรวจสอบสองรายการแรกในpackage-lock.json:

sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==

และใส่การตรวจสอบที่สามลงในฟิลด์ "ความสมบูรณ์":

sha512-WXI95kpJrxw4Nnx8vVI90PuUhrQjnNgghBl5tn54rUNKZYbxv+4ACxUzPVpJEtWxKmeDwnQrzjc0C2bYmRJVKg==

คำอธิบายรายละเอียดมากขึ้นคือที่นี่


ไฟล์ package-lock.json อยู่ที่ไหน
Mamen

@Mamen ในไดเร็กทอรีรูทของแอพของคุณถัดไป tp package.json package.json แสดงรายการการอ้างอิง (แพ็คเกจ) ที่แอปของคุณต้องการเพื่อรวบรวม / เรียกใช้ เมื่อคุณเรียกใช้yarn installหรือyarnแพ็กเกจที่แสดงอยู่ในไฟล์นั้นจะถูกดาวน์โหลดและติดตั้งดังนั้นจึงสามารถรันโปรเจ็กต์ / แอพได้ ไฟล์ "lock" เป็นความแตกต่างอย่างหนึ่งระหว่าง npm และ yarn เพื่อให้แน่ใจว่าเวอร์ชันของแพ็กเกจและความสมบูรณ์
SherylHohman

1
ทางออกเดียวที่ใกล้จะแก้ปัญหาสำหรับฉัน การลบpackage-lock.jsonควรแก้ไขด้วย อย่างน้อยก็ในกรณีของฉัน แม้ว่าจะเห็นได้ชัดว่าไม่เป็นที่ต้องการ และเพื่อความเป็นธรรมฉันต้องพูดถึงที่นี่ว่า OP พยายามลบไฟล์ดังนั้นกรณีที่ที่อยู่คำตอบนี้อาจแตกต่างกันบ้าง
x-yuri

4

ลองทำดังต่อไปนี้:

npm cache clean --force

สิ่งนี้ได้ผลสำหรับฉัน


3
สิ่งนี้ไม่ได้เพิ่มมูลค่าใด ๆ ให้กับคำตอบที่มีอยู่แล้ว ความคิดเห็นที่ได้รับการโหวตมากที่สุดกล่าวถึงแล้วnpm cache clean --forceดังนั้นคำตอบนี้จึงอ่านว่าเป็นเสียงรบกวน
Goodbye StackExchange

2
แม้ว่ารหัสนี้อาจตอบคำถามได้ แต่การให้บริบทเพิ่มเติมเกี่ยวกับวิธีการและ / หรือเหตุผลในการแก้ปัญหาจะช่วยเพิ่มมูลค่าในระยะยาวของคำตอบ
Donald Duck

4

เพื่อเป็นการแก้ปัญหาเบื้องต้นให้ทำตามขั้นตอนด้านล่าง:

  1. ไปที่ไดเรกทอรีโครงการ
  2. ลบไดเร็กทอรี node_modules: rm -rf node_modules
  3. ลบไฟล์ package-lock.json: rm package-lock.json
  4. ล้างแคช: npm cache clean --force
  5. เรียกใช้npm install --verbose หากหลังจากทำตามขั้นตอนข้างต้นแล้วยังคงมีปัญหาอยู่โปรดระบุผลลัพธ์ของคำสั่งการติดตั้งด้วย --verbose

ฉันยังใหม่กับ npm Verbose ให้คำแนะนำบางอย่างแก่ฉัน
Andi AR

3

มีคำตอบที่ถูกต้องและเป็นประโยชน์มากมายที่นี่ แต่ฉันอยากจะเพิ่มว่าในกรณีของฉันวิธีแก้ปัญหาที่ง่ายที่สุดคือ:

  1. ลบ package-lock.json;
  2. ลบโฟลเดอร์ AppData \ Local \ npm \ cache หรือ AppData \ Roaming \ npm \ cache;
  3. ลบโฟลเดอร์ node_modules.staging;
  4. เรียกใช้การติดตั้ง npm อีกครั้ง

หลังจากนั้นทุกอย่างก็ดำเนินไปอย่างราบรื่น


2

ฉันใช้รีจิสทรี npm ส่วนตัวและพยายามติดตั้งโมดูล npm ส่วนตัว การบันทึกลงในรีจิสทรีภายใน npm แก้ไขได้ (คำสั่งที่ใช้npm --add-user)


2

ฉันติดอยู่ที่นี่เป็นเวลานานและนี่คือสิ่งที่ช่วยฉัน

ลองสิ่งนี้:

npm cache clean --force
npm install --update-binary --no-shrinkwrap

เจอคำตอบนี้หลังขุดประเด็น GitHub !!


1

คำตอบของ SherylHohmanช่วยแก้ปัญหาที่ฉันมีได้ แต่หลังจากที่ฉันเปลี่ยนการเชื่อมต่ออินเทอร์เน็ตแล้ว ตอนแรกฉันใช้การเชื่อมต่อแบบฮาร์ดไลน์ในที่ทำงานและฉันเปลี่ยนไปใช้การเชื่อมต่อ WiFi ในที่ทำงาน แต่ก็ยังไม่ได้ผล

เป็นทางเลือกสุดท้ายฉันเปลี่ยน WiFi เป็น Pocket-WiFi และการเรียกใช้สิ่งต่อไปนี้ทำงานได้ดี:

npm cache verify

npm install -g create-react-app

create-react-app app-name

หวังว่านี่จะช่วยคนอื่น ๆ


1

ฉันมีปัญหาที่คล้ายกันมากและในกรณีของฉันมันทำงานได้โดยทำ:

npm clean

นี่คือนิวเคลียร์ตัวเลือกตั้งแต่มันล้างแพคเกจจากแคชเป็นทุก expained ที่นี่


1

สิ่งนี้ยังไม่ได้กล่าวถึง แต่ตรวจสอบให้แน่ใจว่า SYSTEM TIME ของคุณถูกต้อง หากซิงค์มากเกินไปจะทำให้เกิดข้อผิดพลาด EINTEGRITY เมื่อคุณทำ npm เผยแพร่ / ติดตั้ง


0

การอัปเดตรายการ.npmrcไฟล์สำหรับแพ็คเกจที่กำหนดขอบเขตและไม่กำหนดขอบเขตได้ผลสำหรับฉัน ดังนั้นฉันจึงใช้ไฟล์

npm config set @scope_name:registry SCOPED_REGISTRY_URL

และ

npm config set registry PUBLIC_REGISTRY_URL


0

เรียกใช้คำสั่งด้านล่างในโครงการของคุณ ..

npm rm -rf node_modules && npm rm package-lock.json && npm rm -rf ~/.npm && npm install --update-binary --no-shrinkwrap

0

ฉันอยู่เบื้องหลังพร็อกซีขององค์กรการเรียกใช้คำสั่งต่อไปนี้ช่วยแก้ปัญหาให้ฉันได้

npm config set proxy http://proxy.yourproxydomain.com:port
npm config set https-proxy http://proxy.yourproxydomain.com:port
npm config set strict-ssl false
npm config set registry https://registry.npmjs.org/

0

เรามีปัญหานี้หลายครั้งใน บริษัท ที่ฉันทำงาน การลบnode_modulesโฟลเดอร์ออกจากโฟลเดอร์. nvm ช่วยแก้ปัญหา:

rm -rf ~/.nvm/versions/node/v8.6.0/lib/node_modules


0

คุณควรตรวจสอบคำต่อท้าย DNS เฉพาะการเชื่อมต่อเมื่อพิมพ์“ ipconfig” หรือ“ ifconfig” ในเทอร์มินัล


0

ฉันประสบปัญหาเดียวกัน นอกจากนี้ในขณะที่ฉันพยายามแก้ไขจากการเลือกโซลูชันจากผู้พัฒนารายอื่นฉันประสบปัญหาอื่น ๆ อีกเล็กน้อยเช่นเดียวกับที่ระบุไว้ที่นี่

myapp ใหม่ Angular 9 ng ให้ข้อผิดพลาดเวิร์กโฟลว์แผนผังล้มเหลว

https://medium.com/@codewin/npm-warn-deprecated-request-2-88-2-b6da20766fd7

ในที่สุดหลังจากลองล้างแคชและตรวจสอบและติดตั้งโหนดของเวอร์ชันต่างๆและการอัปเดต npm, nvm และโซลูชันอื่น ๆ อีกมากมายเช่น set proxy และการเชื่อมต่ออินเทอร์เน็ตที่ดีขึ้นฉันก็ยังไม่สามารถแก้ไขได้

สิ่งที่ใช้ได้ผลสำหรับฉันคือ: ฉันเรียกดูเล็กน้อยภายในโฟลเดอร์ C: \ Users --- ของฉันฉันพบไฟล์ package-lock.json และ. npmrc ฉันลบสิ่งเหล่านั้นและติดตั้งใหม่เชิงมุมแล้วลอง npm ติดตั้งและถอนการติดตั้งโมดูลต่างๆเริ่มทำงาน

ปัญหาขณะสร้างโดยใช้ <code> ng new sample-app </code>


0

ก่อนที่ฉันจะเรียกใช้คำสั่งนี้

npm install typescript -g

หลังจากเปลี่ยนคำสั่งมันทำงานได้อย่างสมบูรณ์

npm install -g typescript

0

ฉันประสบปัญหานี้ มันเป็นการเชื่อมต่อเครือข่ายของฉัน ฉันเปลี่ยนเครือข่าย (จาก Broadband WiFi เป็น 4G WiFi) และลองแล้ว มันได้ผล

ISP บรอดแบนด์ของฉันบล็อกคำขอ http ทั้งหมด นั่นอาจเป็นเหตุผลที่ฉันเดาในกรณีของฉัน


0

โซลูชันทั้งหมดล้มเหลวสำหรับฉันจนกว่าฉันจะตรวจสอบการตั้งค่าเราเตอร์ มันถูกตั้งค่าเป็น IPV4 เท่านั้น .. ฉันเปลี่ยนและใส่ ipv4v6 และตอนนี้ก็ใช้งานได้ดี


0

คำตอบข้างต้นไม่ได้ผลสำหรับฉัน วิธีแก้ปัญหาของฉันคือเปลี่ยนวิธีใช้การพึ่งพาสแน็ปช็อตภายใน package.json ใช้เทมเพลตต่อไปนี้เพื่อดึงการพึ่งพาสแน็ปช็อตที่คุณต้องการ

"dependency": "git+http://github.com/[pathtoproject].git#[branchname]",

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.