无法更新npm包:ERR!代码EEXIST

18

我正在尝试通过npm升级软件包

npm update -g

但是,我遇到了这个错误:

npm ERR! path C:\Program Files\nodejs\npm
npm ERR! code EEXIST
npm ERR! Refusing to delete C:\Program Files\nodejs\npm: is outside C:\Program Files\nodejs\node_modules\npm and not a link
npm ERR! File exists: C:\Program Files\nodejs\npm
npm ERR! Move it away, and try again.

我已经谷歌了,但是没有一个解决办法有效。有人说要从这里删除npm.cmd和npm文件:

C:\Program Files\nodejs\

我尝试过这个方法,但由于 npm 已经丢失,所以失败了。

那个文件夹 C:\Program Files\nodejs\ 实际上是一个指向其他地方的快捷方式。

C:\Users\lthurman\AppData\Roaming\nvm\v8.11.1

我正在使用nvm管理我的node安装,有什么想法可以解决这个问题吗?

谢谢

3个回答

33

解决此问题,我采取了以下步骤:

其中 [userName] 是您的 Windows 用户名 - [nodeVer] 是您当前使用 NVM 出现问题的 Node 版本或当前版本。

删除这四个文件:

C:\Users\[userName]\AppData\Roaming\nvm\[nodeVer]\npm
C:\Users\[userName]\AppData\Roaming\nvm\[nodeVer]\npm.cmd
C:\Users\[userName]\AppData\Roaming\nvm\[nodeVer]\npx
C:\Users\[userName]\AppData\Roaming\nvm\[nodeVer]\npx.cmd

然后在路径 C:\Users\[用户名]\AppData\Roaming\nvm\[Node版本号]\node_modules\ 中,将目录 npm 重命名为 npm_old

打开你选择的控制台 -- 如果需要,使用管理员身份运行 -- 进入 \npm_old\bin 目录,然后使用以下命令安装最新的 NPM(或者用你选择的版本替换 latest):

node npm-cli.js i -g npm@latest

通过删除之前的npm_old目录进行清理。现在应该一切都可以正常运行...希望如此!


1
在我的Windows电脑上,使用nvm可以正常工作。非常感谢! - hirikarate
在删除上述文件后,我遇到了“npm”被识别的错误。 - Punter Bad
您需要将npm_old包的包名更改为“npm old”。 - BigL
没问题,nvm 1.1.7,Windows 10版本19041.1110。 - Yoarthur
1
谢谢!你救了我的一天! - Vitalii T
1
哦,伙计,非常感谢你!我从没想过会有这么聪明的解决办法。你救了我的一天! - Themis

15

在删除文件夹 C:\Users\xxx\AppData\Roaming\npmC:\Users\xxx\AppData\Roaming\npm-cache 后,请尝试执行以下命令。

npm install -g npm@latest

1

通过使用 --force 强制安装,可以解决这个问题。

npm install -g npm@latest --force

首先卸载旧版本。
npm uninstall -g your-package-name

安装最新版本。
npm install -g your-package-name@latest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接