使用nvm-windows时更新npm

Ped*_* T. 8 windows node.js npm nvm nvm-windows

我正在使用nvm-windows 1.1.7版本。

我刚刚安装了节点11.9.0。

nvm会与此节点版本一起安装npm 6.5.0版。但是,已经有npm 6.7.0版本可用。

现在,npm i -g npm我得到:

npm ERR! path C:\Program Files\nodejs\npm.cmd
npm ERR! code EEXIST
npm ERR! Refusing to delete C:\Program Files\nodejs\npm.cmd: is outside C:\Program Files\nodejs\node_modules\npm and not a link
npm ERR! File exists: C:\Program Files\nodejs\npm.cmd
npm ERR! Move it away, and try again.
Run Code Online (Sandbox Code Playgroud)

我没有办法避免这种情况。

Jef*_*ide 11

我遇到了同样的问题,所以对于在这里找到这个的其他人......

nvm-windowsgithub 存储库上的此问题提供了几种解决方法:

https://github.com/coreybutler/nvm-windows/issues/300

有使用 DOS、PowerShell、bash 和批处理脚本的示例。希望这可以帮助!

  • 谢谢!https://gist.github.com/johnmcase/d31b799b9030327091a0e74880e4c530 的批处理脚本对我来说效果很好。 (5认同)

Rya*_*ton 11

这是我在这里的答案的重复项:https : //stackoverflow.com/a/50955293/491553

这是运行nvm-windows时如何升级npm的方法:

cd %APPDATA%\nvm\v8.10.0           # or whatever version you're using
mv npm npm-old
mv npm.cmd npm-old.cmd
cd node_modules\
mv npm npm-old
cd npm-old\bin
node npm-cli.js i -g npm@latest
Run Code Online (Sandbox Code Playgroud)

和繁荣,升级。

  • 如果目录中有 npx,那么甚至也必须重命名。就我而言,我也将其重命名。`mv npx npx-old` `mv npx.cmd npx-old.cm` (4认同)
  • 如果这很容易就好了...使用节点 14.18.0 我收到类似“npm ERR!”的错误!错误:EPERM:不允许操作,重命名 'C:\Users\roryk\AppData\Roaming\nvm\v14.18.0\node_modules\npm\node_modules\.node-gyp.DELETE\node_modules\@npmcli' -> 'C: \Users\roryk\AppData\Roaming\nvm\v14.18.0\node_modules\npm\node_modules\node-gyp\node_modules\@npmcli'` (3认同)
  • 要找到您的 nvm 安装路径,您可以从 powershell 运行 get-command nvm。 (2认同)
  • 我认为我们必须在最后一个命令中使用 --force 。顺便说一句,感谢您的回答。 (2认同)
  • 上面的这些 `mv` 命令适用于 powershell,但您不能在 PowerShell 中使用 `%appdata%` 语法,因此请使用 `$ENV:AppData` 代替。结果我的“choco install -y nvm”将 nvm 放在“C:\ProgramData\nvm”中,所以我不得不使用“cd $ENV:ProgramData\nvm\v14.17.1”。是的,我必须添加强制标志 `node npm-cli.js i -g npm@latest --force`。 (2认同)

小智 8

我有 Windows 10 操作系统。

我按照以下方式安装。

cd %APPDATA%\nvm\v8.11.3
move npm 5.6.0
move npm.cmd 5.6.0.cmd
cd node_modules\
move npm 5.6.0
cd 5.6.0\bin
node npm-cli.js i -g npm@latest
Run Code Online (Sandbox Code Playgroud)


syt*_*olk 6

  1. 下载此updateNpm.bat文件
  2. 在同一文件夹中打开 powershell 并运行此命令updateNpm.bat latest


Geo*_*nov 5

我不得不强迫它:-/

当它来到

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

我宁愿不得不使用

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

可能是为了克服覆盖“C:\Program Files\nodejs”链接所涉及的权限错误。希望这可以帮助某人...