npm ผิดพลาด! ปฏิเสธที่จะลบ / รหัส EEXIST


94

ฉันใช้งานง่ายnpm installและได้รับข้อผิดพลาดนี้

npm ERR! path /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! code EEXIST
npm ERR! Refusing to delete /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which: is outside /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/which and not a link
npm ERR! File exists: /Users/jasonazoulay/Desktop/fabrick.io/delegation/node_modules/@angular/cli/node_modules/webpack/node_modules/yargs/node_modules/os-locale/node_modules/execa/node_modules/cross-spawn/node_modules/.bin/which
npm ERR! Move it away, and try again

นี่เป็นครั้งแรกที่ฉันได้รับข้อผิดพลาดนี้และฉันไม่รู้ว่าต้องทำอย่างไร


คุณเคยลองวิ่งsudo npm installหรือยัง
antzshrek

ใช่มันก็เหมือนกัน
Azoulay Jason

1
ฉันยังพบปัญหานี้เมื่อฉันโฮสต์โครงการในโฟลเดอร์ที่กำลังซิงค์กับ Google File Stream หลังจากที่ฉันย้ายโปรเจ็กต์ไปที่ "ดิสก์ภายใน" ฉันก็สามารถเรียกใช้งานได้npm install
Trevor

คำตอบ:


148

ขั้นตอน

  1. ลบnode_modulesไดเร็กทอรีอย่างสมบูรณ์
  2. เรียกใช้npm installอีกครั้ง

สิ่งนี้น่าจะช่วยได้


สิ่งนี้ล้มเหลวในการติดตั้งหลังจากทำสิ่งนี้โดยไม่มี npm-cli.js ฉันลงเอยด้วยการทำโซลูชันการเปลี่ยนชื่อด้านล่างพร้อมกับการลบไฟล์ npx
David Bradley

ใช้งานได้ใช่ แต่การลบและติดตั้งใช้เวลานาน วิธีนี้ไม่เหมาะสม
jasie

1
ตอนนี้ฉันได้รับ "ไม่พบโมดูล C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js '
David Klempfner

1
@DavidKlempfner คุณอาจต้องการตรวจสอบคำตอบ SO อื่น ๆstackoverflow.com/questions/24721903/…
antzshrek

28

นี่คือวิธีที่ฉันแก้ไขของฉันหลังจาก 'googling' รอบ ๆ ...

  • ไปที่ไดเร็กทอรีที่โหนดของคุณติดตั้งอยู่
  • เปลี่ยนชื่อnpm.cmdและnpmไฟล์ของคุณ
  • ลองเรียกใช้การติดตั้งอีกครั้ง
  • หากสำเร็จ.. ลบไฟล์ที่คุณเปลี่ยนชื่อก่อนหน้านี้npmและnpm.cmd
  • ถ้าไม่, :( :(

คำสั่ง cli ที่นี่ ... ในกรณีที่คุณไม่ต้องการเปลี่ยนชื่อและบรรจุ

cd %ProgramFiles%\nodejs
ren npm.cmd npm2.cmd
ren npm npm2 
npm2 install npm@latest -g

del npm2
del npm2.cmd

Rolf-Schmidiger


4
คำตอบนี้ใช้ได้ผลสำหรับฉัน แต่ฉันต้องเปลี่ยนชื่อ npx.cmd และ npx เป็น npx2.cmd และ npx2 ด้วย ฉันต้องเรียกใช้เทอร์มินัลในฐานะผู้ดูแลระบบด้วย
raphadko

4
สิ่งนี้ได้ผลสำหรับฉันเช่นกัน ต้องเปลี่ยนชื่อ npx และ npx.cmd รวมทั้ง npm และ npm.cmd จากนั้นฉันก็ทำการ "npm_ update -g npm" และได้ผล บางทีมันอาจเกี่ยวข้องกับความจริงที่ว่าฉันไม่ได้ติดตั้ง nodejs ผ่านตัวติดตั้ง แต่ดึงมันออกมาจากไฟล์ zip แทน
Igor

1
ยังต้องเปลี่ยนชื่อ npx.cmd
Reza

1
ฉันลบไฟล์ npx แทนที่จะเปลี่ยนชื่อไฟล์ที่ใช้งานได้ไฟล์ใหม่ถูกสร้างขึ้น
David Bradley

2
สิ่งนี้ได้ผลสำหรับฉันด้วย @DavidKlempfner รันคำสั่งโดยใช้ npm2 ทันทีที่เปลี่ยนชื่อแล้ว หลังจากนั้นฉันพบปัญหาเกี่ยวกับการปฏิเสธที่จะลบ `... \ npm \ node_modules * \ node_modules \ .bin * ฉันเพิ่งลบโฟลเดอร์. bin ด้วยตนเองทุกครั้งที่บ่น (เช่นสองครั้งหรือ 3 ครั้ง) และมันใช้งานได้
Zakk Diaz

7

ลองรันnpm update -g npmแล้วรันnpm iอีกครั้ง
หากไม่ได้ผลอาจnpm cache cleanช่วยได้

หากไม่ได้ผลคุณควรพิจารณาลบnode_modulesโฟลเดอร์ในแอปพลิเคชันของคุณและเรียกใช้npm iอีกครั้ง
หากคุณยังมีโชคไม่ผมขอแนะนำให้ถอดpackage-lock.jsonและโฟลเดอร์ก่อนที่จะใช้node_modulesnpm i


2
@AzoulayJason ฉันเพิ่งรู้ตัว หากคุณกำลังใช้เวอร์ชั่นใหม่ล่าสุดของ CLI เชิงมุมก็ขอแนะนำให้ใช้แทนyarn npm iมีข้อบกพร่องบางอย่างที่เกี่ยวข้องกับ npm ในเวอร์ชันล่าสุด หวังว่าจะช่วยได้!
OArnarsson

ณ วันที่ npm @ 5 แคช npm สามารถรักษาตัวเองจากปัญหาความเสียหายและข้อมูลที่ดึงออกจากแคชได้รับการรับรองว่าถูกต้อง หากคุณต้องการให้แน่ใจว่าทุกอย่างสอดคล้องกันให้ใช้ 'npm cache verification' แทน
เรือน

4

ฉันพบปัญหานี้บน Linux (npm เป็น 5.6.0 ล่าสุดในปัจจุบัน) เนื่องจากฉันสร้างไฟล์เก็บถาวร tgz และฉันจำเป็นต้อง - เปรียบเทียบ symlink บางตัว (ดูman tar) เมื่อสร้างไฟล์เก็บถาวร tgz (ซึ่งคัดลอกไปยัง VM เพื่อทดสอบ ). ด้วยวิธีนี้ symlink จำนวนมากnode_modules/.binก็กลายเป็นไฟล์ปกติ npm ระบุในข้อความแสดงข้อผิดพลาด, .eg

npm ผิดพลาด! ไม่ยอมลบ /path/to/node_modules/.bin/jest: อยู่นอก / path / to / node_modules / jest และไม่ใช่ลิงค์


2
  1. ถอนการติดตั้ง node.js จากแผงควบคุม
  2. ลบโฟลเดอร์ด้านล่าง
C:\Program Files (x86)\Nodejs
C:\Program Files\Nodejs
C:\Users\{User}\AppData\Roaming\npm (or %appdata%\npm)
C:\Users\{User}\AppData\Roaming\npm-cache (or %appdata%\npm-cache)
C:\Users\{User}\.npmrc (and possibly check for that without the . prefix too)
C:\Users\{User}\AppData\Local\Temp\npm-*
  1. ติดตั้ง node.js อีกครั้ง

1

ฉันมีข้อผิดพลาดที่คล้ายกัน (ของฉันไม่ใช่ @angular)
แก้ไขได้โดยการลบและติดตั้งโหนดใหม่ด้วยตัวติดตั้ง


1

ฉันมีปัญหาเดียวกันและปรากฎว่าปัญหาคืออินสแตนซ์หลงทางnpmกำลังทำงานอยู่ที่ไหนสักแห่งในพื้นหลังในเวลาเดียวกันฉันพยายามทำการติดตั้ง (เป็นของ Webpack npm run serveเพื่อให้แม่นยำ)

การหยุดอินสแตนซ์ที่กำลังทำงานอยู่ช่วยแก้ปัญหาได้


1

ฉันมีปัญหาที่คล้ายกันและสิ่งที่ดูเหมือนจะได้ผลคือการถอนการติดตั้ง npm และติดตั้งใหม่ตรวจสอบให้แน่ใจว่าได้ลงชื่อเข้าใช้เป็นผู้ใช้ที่ถูกต้องสำหรับการติดตั้งใหม่ ฉันคิดว่าก่อนหน้านี้ฉันได้ติดตั้ง npm ในฐานะรูท แต่กำลังอัปเดตแพ็คเกจเป็นผู้ใช้ทั่วไป (sudo)


1

ฉันมีปัญหานี้เมื่อทำงานบนดิสก์เสมือนที่เข้ารหัส การย้ายโปรเจ็กต์ไปยังดิสก์ปกติช่วยแก้ปัญหาได้


1

ฉันมีข้อผิดพลาดเดียวกัน แต่เมื่อฉันพยายามอัปเดตโมดูล "Cordova" เป็นเวอร์ชัน 9 ฉันแก้ไขโดยบังคับให้ติดตั้งด้วย--force. คำสั่ง npm ที่ฉันใช้:

npm i -g --force cordova@9 


1

สำหรับผู้ใช้ windows (เฉพาะ windows 10) สิ่งนี้ต้องแก้ปัญหา

ไปที่โฟลเดอร์นี้:

C:\Users\[UserName]\AppData\Roaming\

ลบหรือเปลี่ยนชื่อnpmและnpm-cacheโฟลเดอร์

สิ่งนี้ได้แก้ไขปัญหาของฉันใน Windows

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