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

Laz*_*man 11 node.js npm nvm

我正在尝试通过以下方式升级 npm 包

npm update -g
Run Code Online (Sandbox Code Playgroud)

但是,我收到此错误:

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.
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索过,但没有一个解决方案有效。从这里删除 npm.cmd 和 npm 文件的一个萨迪:

C:\Program Files\nodejs\
Run Code Online (Sandbox Code Playgroud)

我试过了,但它失败了,因为现在缺少 npm。

那个文件夹,C:\Program Files\nodejs\,实际上是一个指向

C:\Users\lthurman\AppData\Roaming\nvm\v8.11.1
Run Code Online (Sandbox Code Playgroud)

我正在使用 nvm 来管理我的节点安装,关于如何解决这个问题的任何想法?

谢谢

Avi*_*Avi 12

删除文件夹后C:\Users\xxx\AppData\Roaming\npm,尝试在下面的命令中执行此操作C:\Users\xxx\AppData\Roaming\npm-cache

npm install -g npm@latest
Run Code Online (Sandbox Code Playgroud)


Roc*_*e33 12

为了解决这个问题,我采取了以下步骤

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

删除这四个文件:

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
Run Code Online (Sandbox Code Playgroud)

然后在C:\Users\[userName]\AppData\Roaming\nvm\[nodeVer]\node_modules\,将npm目录重命名为npm_old

打开您选择的控制台——如有必要,以管理员身份运行——并导航到该\npm_old\bin目录,然后使用以下命令最晚安装 NPM(或替换最新版本的您选择的版本):

node npm-cli.js i -g npm@latest
Run Code Online (Sandbox Code Playgroud)

通过删除之前的npm_old目录进行清理。现在一切都应该好了……我希望!