Nvm-windows: 无法安装最新的 npm 包

创建于 2019-12-13  ·  6评论  ·  资料来源: coreybutler/nvm-windows

在提交新问题之前,请确保您已查看常见问题和现有问题。

如果这是关于如何使用 NVM4W 的问题,请改用stackoverflow

如果这是关于防病毒的问题,请确保首先搜索现有问题。

我的环境

  • [ ] Windows 7 或更低版本(由于 EOL 不真正支持 - 请参阅 wiki 了解详细信息)
  • [ ] 视窗 8
  • [ ] 视窗 8.1
  • [x] 视窗 10
  • [ ] Windows 10 物联网核心版
  • [ ] 视窗服务器 2012
  • [ ] Windows 服务器 2012 R2
  • [ ] 视窗服务器 2016

  • [ ] 我的 Windows 安装是非英语的。

我正在使用 NVM4W 版本:

如果您不知道,请运行nvm version

1.1.7。

我的问题与(仅检查适用的问题)有关:

  • [ ] 设置.txt
  • [ ] 代理支持(您尝试过 1.1.0+ 版本吗?)
  • [ ] 32 或 64 位支持(您尝试过 1.1.3+ 版本吗?)
  • [ ] 字符转义(你试过1.1.6+版本吗?)
  • [ x] 标准的 shell 环境(终端/powershell)
  • [ ] 非标准的 shell 环境(Cmder、Hyper、Cygwin、git)

预期行为

我期待 npm-version-windows

实际行为

PS C:\WINDOWS\system32> npm install npm-windows-upgrade -g
C:\Program Files\nodejs\npm-windows-upgrade -> C:\Program Files\nodejs\node_modules\npm-windows-upgrade\bin\npm-windows-upgrade.js

  • [email protected]
    在 8.124 秒内添加了来自 51 个贡献者的 72 个包
    PS C:\WINDOWS\system32> npm-windows-upgrade -p -v 最新
    npm-windows-升级 v6.0.1
    检查系统的 npm 安装:
    根据 PowerShell:C:\Program Files\nodejs
    根据 npm:C:\Program Files\nodejs
    决定npm安装在C:\Program Files\nodejs
    正在升级 npm...

正在升级 npm(后备方法)...

你想安装 npm 6.13.4,但安装的版本是 6.9.0。

一个常见的原因是尝试“npm install npm”或“npm upgrade npm”。 到今天为止,唯一的解决方案是完全卸载然后重新安装 Node.js。 有关小型教程,请参阅https://github.com/felixrieseberg/npm-windows-upgrade#usage。

请考虑向https://aka.ms/npm-issues 报告您的问题。

调试信息:

节点:12.6.0 | v8:7.5.288.22-node.14 | 紫外线:1.30.1 | zlib: 1.2.11 | 布罗特里:1.0.7 | 战神:1.15.0 | 模块:72 | nghttp2:1.38.0 | 纳皮:4 | llhttp:1.1.4 | http_parser:2.8.0 | openssl:1.1.1c | cldr: 35.1 | 重症监护室:64.2 | tz: 2019a | 统一码:12.1 | 操作系统:win32 x64 | 操作系统名称:Microsoft Windows 10 企业版
操作系统版本:10.0.17134 不适用 内部版本 17134

重现问题的步骤:

我想获得最新的 npm 包 6.13.4 [无安全问题] 节点版本为 12.13.1

最有用的评论

这对我有用,但我不会发誓它是每个人的答案:

  1. 使用nvm install设置节点安装。
  2. 执行nvm use设置当前版本。
  3. 在文件资源管理器中打开当前版本。 (在 PowerShell 中,您可以使用explorer.exe $env:NVM_SYMLINK来执行此操作。在命令提示符中,它是explorer.exe %NVM_SYMLINK% 。)
  4. 删除 npm、npx、npm.cmd 和 npx.cmd 文件。 我认为设置时没有任何 ps1 文件,但确实如此,也将其删除。 小心。 如果升级失败,我不知道这次删除的全部影响。 您应该将它们保留在回收站中以便您可以恢复它们,或者如果它失败,则准备完全重新安装 Node 版本。
  5. 现在脚本已被删除,我们必须更手动地调用 npm。 这是调用其更新命令的 PowerShell 命令:
    node (Join-Path $env:NVM_SYMLINK 'node_modules\npm\lib\npm.js') install -g npm

这对我有用,因为当我运行npm install -g npm时,我得到的错误是顶级脚本文件在安装“外部”,我认为这意味着它们未被识别为由它管理。 我不知道为什么 npm 认为它不控制这些文件,但是一旦它们不受控制,它就会更新得很好。

所有6条评论

https://nodejs.org/en/blog/vulnerability/december-2019-security-releases/尝试获取此安全问题的最新 npm 版本。

这对我有用,但我不会发誓它是每个人的答案:

  1. 使用nvm install设置节点安装。
  2. 执行nvm use设置当前版本。
  3. 在文件资源管理器中打开当前版本。 (在 PowerShell 中,您可以使用explorer.exe $env:NVM_SYMLINK来执行此操作。在命令提示符中,它是explorer.exe %NVM_SYMLINK% 。)
  4. 删除 npm、npx、npm.cmd 和 npx.cmd 文件。 我认为设置时没有任何 ps1 文件,但确实如此,也将其删除。 小心。 如果升级失败,我不知道这次删除的全部影响。 您应该将它们保留在回收站中以便您可以恢复它们,或者如果它失败,则准备完全重新安装 Node 版本。
  5. 现在脚本已被删除,我们必须更手动地调用 npm。 这是调用其更新命令的 PowerShell 命令:
    node (Join-Path $env:NVM_SYMLINK 'node_modules\npm\lib\npm.js') install -g npm

这对我有用,因为当我运行npm install -g npm时,我得到的错误是顶级脚本文件在安装“外部”,我认为这意味着它们未被识别为由它管理。 我不知道为什么 npm 认为它不控制这些文件,但是一旦它们不受控制,它就会更新得很好。

@myty同样,我不能代表所有人,但是 npm-windows-upgrade 对我来说失败了。 它的错误信息比我从npm install -g npm得到的错误信息更加神秘和无益。 (我不记得确切的错误信息;我认为它非常通用。)不过,我们可能面临不同的问题。

这也有效。 第300章(评论)

这在过去对我有用,但现在,在尝试将 npm 从 6.13.4 更新到 6.13.6(使用节点 12.16.0)时,我收到以下错误:

npm ERR! code EEXIST
npm ERR! path C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\.bin\semver
npm ERR! Refusing to delete C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\.bin\semver: is outside C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\semver and not a link
npm ERR! File exists: C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\node_modules\.bin\semver
npm ERR! Remove the existing file and try again, or run npm
npm ERR! with --force to overwrite files recklessly.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\johns\AppData\Roaming\npm-cache\_logs\2020-02-18T20_00_16_440Z-debug.log

还有其他人遇到这个问题并能够解决吗? 我确实尝试过 --force 但同样的错误。

我在 nvm-windows 之前安装了 Nodist。 它在主目录( %userprofile% )下留下了一个.npmrc文件。 我不得不删除它并再次尝试nvm use命令以使一切正常。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

Deilan picture Deilan  ·  4评论

snerte picture snerte  ·  5评论

tomByrer picture tomByrer  ·  4评论

flpms picture flpms  ·  4评论

AllainPL picture AllainPL  ·  7评论