npm ERR!拒绝删除/编码EEXIST


86

我只是运行一个简单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

Answers:


134

脚步

  1. node_modules完全删除目录。
  2. npm install再次运行。

这应该有所帮助。


执行此操作后安装失败,缺少npm-cli.js。我最终做了下面的重命名解决方案以及删除npx文件
David Bradley

可以,可以,但是删除和安装需要很长时间。这种解决方案不是最佳的。
杰西

1
现在,我得到“无法找到模块C:\ Program Files文件\的NodeJS \ node_modules \故宫\ BIN \ NPM-cli.js'
大卫Klempfner

1
@DavidKlempfner你可能要检查这个其他SO答案stackoverflow.com/questions/24721903/...
antzshrek

27

这就是我'围棋'后解决我的方式...

  • 导航到您的节点所在的目录
  • 重命名您npm.cmdnpm文件
  • 尝试再次运行安装
  • 如果成功,请删除之前重命名的文件,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

罗尔夫·施密迪格


4
这个答案对我有用,但是我也不得不将npx.cmd和npx重命名为npx2.cmd和npx2。我还必须以管理员身份运行终端。
raphadko

4
这也对我有用。必须重命名npx和npx.cmd以及npm和npm.cmd。然后,我做了“ npm_ update -g npm”,它起作用了。可能与以下事实有关:我没有通过Installer安装nodejs,而是从zip文件中提取了它。
伊戈尔(Igor)

1
还需要重命名npx.cmd
Reza

1
我删除了npx文件,而不是重命名可以工作的文件,而是创建了新文件。
David Bradley

2
这也对我有用。@DavidKlempfner已重命名,现在使用npm2运行该命令。之后,我遇到了一个有关拒绝删除`... \ npm \ node_modules * \ node_modules \ .bin *的问题,我只是在每次抱怨(如两次或3次)时都手动删除了.bin文件夹,并且它起作用了。
Zakk Diaz

7

尝试运行,npm update -g npm然后npm i再次运行。
如果这样不起作用,可能会有所npm cache clean帮助。

如果仍然不起作用,则应考虑删除node_modules应用程序中的文件夹,然后npm i再次运行。
如果仍然不走运,我建议在运行之前删除package-lock.jsonnode_modules文件夹npm i


2
@AzoulayJason我刚刚意识到。如果您使用的是最新的angular CLI版本,强烈建议使用yarn代替npm i。最新版本中存在与npm相关的某种错误。希望能帮助到你!
OArnarsson

从npm @ 5开始,npm缓存会因损坏问题而自我修复,并且保证从缓存中提取的数据是有效的。如果要确保所有内容都一致,请改用“ npm cache verify”。

4

我在Linux上遇到了这个问题(npm是当前最新的5.6.0),因为我创建了一个tgz存档,并且man tar在创建tgz存档(将它们复制到VM以进行测试)时需要--dereference一些符号链接(请参阅参考资料)。 )。这样,许多符号链接node_modules/.bin也变成了常规文件。npm在错误消息中表示,例如

npm ERR!拒绝删除/path/to/node_modules/.bin/jest:在/ path / to / node_modules / jest之外,而不是链接


1

我有一个类似的错误(我的不是@angular),可以
通过使用安装程序删除并重新安装节点来解决。


1

我遇到了同样的问题,结果是问题出在npm我尝试进行安装的同时,一个杂散的实例在后台某处运行(准确地说是Webpack的实例npm run serve)。

停止正在运行的实例可以解决该问题。


1

我遇到了类似的问题,似乎已奏效的是卸载npm并重新安装它,并确保以重新安装的正确用户身份登录。我想我以前以root用户身份安装过npm,但是正在以常规(sudo)用户身份更新软件包。


1

在虚拟的加密磁盘上工作时遇到此问题。将项目移动到常规磁盘即可解决此问题。


1
  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

这对我有用

npm install -g --force gatsby-cli

谢谢


0

我遇到了同样的错误,但是当我尝试将模块“ cordova”更新到版本9时,我通过使用强制安装进行了修复--force。我使用的npm命令:

npm i -g --force cordova@9 

0

对于Windows用户(特定于Windows 10),这必须解决问题。

转到此文件夹:

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

删除或重命名npmnpm-cache文件夹。

这已经解决了我在Windows中的问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.