npm ERR! Từ chối xóa / mã EEXIST


88

Tôi chỉ đang chạy một đơn giản npm installvà tôi gặp lỗi này.

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

Đây là lần đầu tiên tôi gặp lỗi này và tôi không biết phải làm gì.


bạn cũng đã thử chạy sudo npm install?
antzshrek

Có nó đã làm như vậy
Azoulay Jason

1
Tôi cũng gặp sự cố này khi lưu trữ một dự án trong một thư mục đang được đồng bộ hóa với Google File Stream. Sau khi chuyển dự án sang "đĩa cục bộ", tôi có thể chạynpm install
Trevor

Câu trả lời:


137

Các bước

  1. Xóa node_moduleshoàn toàn thư mục.
  2. Chạy npm installlại.

Điều này sẽ giúp ích.


Điều này không thể cài đặt sau khi thực hiện việc này, thiếu npm-cli.js. Tôi đã thực hiện giải pháp đổi tên bên dưới cùng với việc xóa các tệp npx
David Bradley

điều này hoạt động, có, nhưng việc xóa và cài đặt mất nhiều thời gian. giải pháp này không phải là tối ưu.
jasie

1
Bây giờ tôi nhận được "Không thể tìm thấy mô-đun C: \ Program Files \ nodejs \ node_modules \ npm \ bin \ npm-cli.js '
David Klempfner

1
@DavidKlempfner, bạn có thể muốn kiểm tra câu trả lời SO khác này stackoverflow.com/questions/24721903/…
antzshrek

27

Đây là cách tôi giải quyết vấn đề của mình sau khi 'googling' xung quanh ...

  • Điều hướng đến thư mục mà nút của bạn đã được cài đặt
  • đổi tên của bạn npm.cmdnpmcác tệp
  • Thử chạy lại cài đặt
  • Nếu thành công..xóa các tệp bạn đã đổi tên trước đó npmnpm.cmd
  • nếu không, :( :(

Các lệnh cli ở đây ... trong trường hợp bạn không muốn đổi tên và nội dung

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

del npm2
del npm2.cmd

Rolf-schmidiger


4
Câu trả lời này phù hợp với tôi, nhưng tôi cũng phải đổi tên npx.cmd và npx thành npx2.cmd và npx2. Tôi cũng phải chạy thiết bị đầu cuối với tư cách quản trị viên.
raphadko

4
Điều này cũng làm việc cho tôi. Phải đổi tên npx và npx.cmd cũng như npm và npm.cmd. Sau đó tôi đã thực hiện "npm_ update -g npm" và nó hoạt động. Có lẽ nó liên quan đến thực tế là tôi đã không cài đặt nodejs thông qua Trình cài đặt mà thay vào đó là giải nén nó từ một tệp zip.
Igor

1
cũng cần phải đổi tên npx.cmd
Reza

1
Tôi đã xóa các tệp npx thay vì đổi tên chúng hoạt động, những tệp mới đã được tạo.
David Bradley

2
Điều này cũng làm việc cho tôi. @DavidKlempfner chạy lệnh bằng npm2 bây giờ nó đã được đổi tên. Sau đó, tôi gặp sự cố về việc Từ chối xóa `... \ npm \ node_modules * \ node_modules \ .bin * Tôi chỉ xóa thủ công các thư mục .bin mỗi khi nó bị khiếu nại (như hai lần hoặc 3 lần) và nó hoạt động.
Zakk Diaz

7

Thử chạy npm update -g npmrồi chạy npm ilại.
Nếu điều đó không hiệu quả có thể npm cache cleangiúp ích.

Nếu điều đó không hiệu quả, bạn nên xem xét xóa node_modulesthư mục trong ứng dụng của mình và chạy npm ilại.
Nếu bạn vẫn không gặp may, tôi khuyên bạn nên xóa package-lock.jsonnode_modulesthư mục trước khi chạy npm i.


2
@AzoulayJason Tôi vừa nhận ra. Nếu bạn đang sử dụng phiên bản mới nhất của CLI góc cạnh, bạn nên sử dụng yarnthay thế npm i. Có một số lỗi liên quan đến npm trong phiên bản mới nhất. Hy vọng nó giúp!
OArnarsson

Kể từ npm @ 5, bộ nhớ cache npm tự phục hồi do các vấn đề hỏng hóc và dữ liệu được trích xuất từ ​​bộ nhớ cache được đảm bảo là hợp lệ. Nếu bạn muốn đảm bảo mọi thứ đều nhất quán, hãy sử dụng 'xác minh bộ nhớ cache npm' để thay thế.
Ruan

4

Tôi gặp sự cố này trên Linux (npm là phiên bản 5.6.0 mới nhất hiện tại), vì tôi đã tạo tệp lưu trữ tgz và tôi cần - tham khảo một số liên kết tượng trưng (xem man tar) khi tạo tệp lưu trữ tgz (chúng được sao chép vào máy ảo để thử nghiệm ). Bằng cách này, nhiều liên kết tượng trưng node_modules/.bincũng trở thành các tệp thông thường. npm cho biết trong thông báo lỗi, .eg

npm ERR! Từ chối xóa /path/to/node_modules/.bin/jest: nằm ngoài / path / to / node_modules / jest và không phải là liên kết


1

Tôi đã gặp lỗi tương tự (của tôi không phải là @angular),
được giải quyết bằng cách xóa và cài đặt lại nút bằng trình cài đặt.


1

Tôi đã gặp vấn đề tương tự và hóa ra vấn đề là một phiên bản npmbị lạc đang chạy ở đâu đó trong nền cùng lúc tôi đang cố cài đặt ( npm run servechính xác là của Webpack ).

Dừng phiên bản đang chạy đã giải quyết được sự cố.


1

Tôi đã gặp sự cố tương tự và những gì có vẻ đã hoạt động là gỡ cài đặt npm và cài đặt lại nó, đảm bảo đăng nhập với tư cách người dùng chính xác để cài đặt lại. Tôi nghĩ rằng trước đây tôi đã cài đặt npm dưới dạng root, nhưng đang cập nhật một gói với tư cách là người dùng (sudo) thông thường.


1

Tôi gặp sự cố này khi làm việc trên đĩa ảo, được mã hóa. Di chuyển dự án sang đĩa thông thường đã giải quyết được vấn đề.


1
  1. Gỡ cài đặt node.js khỏi bảng điều khiển
  2. Xóa các thư mục bên dưới
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. Cài đặt lại node.js

1

Điều này đã làm việc cho tôi

npm install -g --force gatsby-cli

Cảm ơn


0

Tôi cùng một lỗi nhưng khi tôi đang cố cập nhật mô-đun "cordova" lên phiên bản 9. Tôi đã sửa nó bằng cách buộc cài đặt với --force. Lệnh npm tôi đã sử dụng:

npm i -g --force cordova@9 

0

Đối với người dùng windows (cụ thể cho windows 10) điều này phải giải quyết vấn đề.

Di chuyển thư mục này:

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

xóa hoặc đổi tên thư mục npmnpm-cache.

Điều này đã khắc phục sự cố của tôi trong Windows.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.