运行nvm install latest
后,节点版本12.5.0
和 npm 版本v6.9.0
已安装。
安装命令后,没有显示错误:
出现以下问题:
node_modules/ 文件夹为空:
只需安装一个版本并检查会发生什么。 不知道这是如何工作的,但它似乎与新的 npm/cli 项目 url 更改有关。
您是否 100% 确定您正在运行 1.1.7? 我问是因为 npm/cli 更改是 1.1.6 中存在的硬编码 URL 问题,并在 1.1.7 中修复。
不幸的是,100% 确定@coreybutler
哈哈哈
这是我的版本截图:
我的一个朋友刚刚在他的机器上安装了 nvm 1.1.7,我也升级了我的以获得最新版本的 npm,不幸的是没有运气
对不起,不得不问:-)
我无法重新创建这个。
通常归结为 a) 权限,b) 下载期间的网络问题。 有时网络问题出在远程服务器上,尤其是在推送了全新的 node/npm 版本时。 此错误消息一直出现,但出于许多不同的原因,很难确定问题的真正根源。
要重现此问题,我必须卸载 Node 和 NPM 并仅使用 NVM 进行全新安装,然后出现错误。
我注意到在安装过程中,与 NPM 相关的东西被下载到一个临时文件夹,但后来它从未移动到任何地方,并且临时文件夹被删除。
即使以管理员身份运行 powershell,所以我认为它与权限无关。
安装期间:
安装后:
@gsicoli您是正确的,npm 下载到临时目录然后被移动。 如果移动操作静默失败,则会导致目录被删除,而不会将 npm 移动到需要的位置(即这种行为)。
运行nvm use
或nvm install
时是否会提示您? 以管理员身份运行并不一定意味着该帐户具有提升的权限。 通常,Windows 会提示您提升权限。 对于管理员帐户,它会自动授予,但仍需要用户说“确定”。
当我不以管理员身份运行时它会提示。 如果我以管理员身份运行它不会提示...尽管如此效果是一样的。
在 Windows 10 上面临同样的问题。如果我可以提供任何信息,我将很乐意提供帮助!
不过,它似乎与某个版本的节点无关; 对于我尝试安装的版本,node_modules 文件夹始终为空。 系统提示我提升权限。
有同样的问题。 有解决方法吗?
有同样的问题。 这是我的尝试,对我有用:
node_modules
目录已存在于 nvm 安装目录中的version drectory
中,则删除它(例如 C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4)。node_modules
目录复制到上一步中推断的version directory
。有同样的问题。 所以,我已经应用了@liuwenzhuang 的解决方法。 确实,现在npm
工作正常。 但是,我在npm up -g
上收到以下错误
关闭 McAfee 并从管理控制台运行安装为我解决了这个问题。
@helzgate :这对我来说毫无意义。 我的病毒日志一无所获。
您能否提供 McAfee 活动的日志?
我可以确认这一点。 启用 mcafee 后,npm 被解压,但移动失败且没有任何错误。 McAfee 日志根本没有显示任何内容。 在安装期间禁用 mcafee 可解决此问题。
@coreybutler我知道这不是一个很好的解决方案,但显然解压缩是有效的,所以是否可以直接解压缩到 nodes_module/npm 文件夹而不是解压缩到 temp 并移动?
我遇到了同样的问题,但它似乎只发生在安装节点 6 时(或者因为我在执行nvm install latest
之后安装了节点 6 而发生?)。 NPM 安装无限期挂起,我遇到了与上面列出的相同的npm-cli
错误。
我安装了 McAfee Endpoint Security,但由于它是办公室中的托管 PC,因此无法禁用它以查看是否存在问题。 进入安装过程 10 分钟后,NPM 继续挂起。 有没有办法修改 NVM 以至少检测挂起或进程未按预期完成?
请注意,此评论完全有效! 如果这是nvm
安装程序所做的,那就太好了。
@matthew-dean 与 McAfee 相同。 虽然他们没有正确定义我的权限,所以我可以禁用它。 明天我回来工作时,我会看看这是否是问题的原因。 我不会感到惊讶; dart 的包安装程序在安装某些包时报告了类似的问题(也可以通过下载到 temp 然后移动到其他地方)。
是的,这确实是我的问题! McAfee Endpoint Security 会静默阻止某些操作。
安装任何启用 McAfee 的版本 => 没有 npm
安装任何禁用 McAfee 的版本 => npm 都包括在内并且工作正常
谢谢! 遵循该脚本的改进版本bash 。 (您可能需要调整nodejs
位置。)将其附加到~/.bashrc
并在新的 bash 中执行npmup
。 或者,直接一次执行函数体的命令。 此版本实际上进行了更新,而不是每次都(重新)安装。
function npmup {
pushd /c/Program\ Files/nodejs > /dev/null
mv npm npm2
mv npm.cmd npm2.cmd
mv npx npx2
mv npx.cmd npx2.cmd
node node_modules/npm/bin/npm-cli.js up npm -g
mv -n npm2 npm
mv -n npm2.cmd npm.cmd
mv -n npx2 npx
mv -n npx2.cmd npx.cmd
rm -f npm2 npm2.cmd npx2 npx2.cmd
popd > /dev/null
}
我提到的评论已被删除,很抱歉造成混淆。
使用 1.1.7 时,在使用 NVM 执行 Node.js + NPM 的全新安装时,我遇到了相同的问题,即 NPM 没有从“temp”文件夹中复制过来。 由于我使用的是公司机器,因此无法在禁用 McAfee Endpoint Security 的情况下进行测试。
但是,我今天从“master”构建了 NVM,并验证它能够从头开始正确安装而不会出现问题。
请注意,此问题_just_不是 NPM 无法安装,而是 NVM 命令行实用程序也无法_recognize_ NPM 未安装。 IMO 安装程序没有执行验证目录是否存在的必要步骤,这将避免围绕此问题的一些混淆。
@hind3nbug对我来说同样如此,McAfee Endpoint Security 在公司机器上是不可禁用的,所以仍然需要一种正确的方法来安装 NPM。 应该有一些方法可以做到这一点。
使用 1.1.7 时,在使用 NVM 执行 Node.js + NPM 的全新安装时,我遇到了相同的问题,即 NPM 没有从“temp”文件夹中复制过来。 由于我使用的是公司机器,因此无法在禁用 McAfee Endpoint Security 的情况下进行测试。
但是,我今天从“master”构建了 NVM,并验证它能够从头开始正确安装而不会出现问题。
可以分享一下你的版本吗? 我无法从源代码构建 nvm :(
@hind3nbug & @coreybutler ......那么这个问题解决了吗? 但没有发布新的 nvm 版本? 估计什么时候出新版本?
我在 nvm-windows 之前安装了 Nodist。 它在主目录( %userprofile%
)下留下了一个.npmrc
文件。 我不得不删除它并再次尝试nvm use
命令以使一切正常。
今天发生在我身上 - 卸载版本然后重新安装它似乎可以解决问题。
我在安装 npm 时遇到了静默失败。
我认为它可能是 Windows 病毒扫描程序,所以我禁用了它:
奇怪的是,现在失败并没有沉默:
$ nvm install 12.12.0
Downloading node.js version 12.12.0 (64-bit)...
Complete
Creating C:\ProgramData\nvm\temp
Downloading npm version 6.11.3... Download failed. Rolling Back.
Rollback failed. remove C:\ProgramData\nvm\temp\npm-v6.11.3.zip: The process cannot access the file because it is being used by another process.
Could not download npm for node v12.12.0.
Please visit https://github.com/npm/npm/releases/tag/v6.11.3 to download npm.
It should be extracted to C:\ProgramData\nvm\v12.12.0
安装后你运行nvm on
了吗?
每次安装新版本的 Node.js 时都必须这样做吗?
我已经使用 nvm 几年了,以前从来没有做过nvm on
。
我决定关闭这个问题,因为这开始涉及许多其他问题。 让我们坚持每个线程一个问题。 如果您的问题未解决,请打开一个新问题。
我将尝试根据我所阅读的内容进行总结:
1) npm 将由 nvm 安装。 如果您看到旧路径 (npm/npm),则需要将 NVM4W 升级到 1.1.7。 如果您没有适当的权限,它将失败。 这就是 Windows 的本质和意图,也是 UAC 提示存在的原因。
2) 您的防病毒软件可能会阻止 NVM4W 将 npm 的文件从临时目录移动到其最终位置。 将其关闭或例外。 见第 3 点。
3) NVM4W 已提交给各大杀毒软件供应商并且正在通过(理论上)。 然而; 防病毒软件一直在更改定义,因此很难跟上。 一些非品牌 AV 的定义基于非常过时的知识,最具挑战性的是一些完全阻止 Go 程序。 几年前,Go 运行时出现了误报……很久以前就已经打了补丁,而且 NVM4W 从未遭受过漏洞利用……但是一些 AV 公司阻止了整个 Go 语言签名。
4)说实话,我从不关闭和打开nvm。 您实际上不必这样做,但它旨在帮助测试您的系统。
有同样的问题。 这是我的尝试,对我有用:
- 从https://nodejs.org/en/download/releases/以 zip 格式(或其他格式)下载需要的节点版本
- 如果
node_modules
目录已存在于 nvm 安装目录中的version drectory
中,则删除它(例如 C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4)。- 从步骤 1 中解压缩文件,并将
node_modules
目录复制到上一步中推断的version directory
。- npm 工作
我尝试了两天... nvm,重新安装节点,重新启动,更改路径,这是唯一真正像魅力一样工作的东西!
@coreybutler我可以建议将@liuwenzhuang的建议添加到 readme.md 或Common-Issues吗?
这可以节省某人的时间。
你好,这是我的情况,控制台中的这条消息给了我关于错误的线索:
转到https://github.com/npm/npm/页面显示存储库已被移动,现在位于https://github.com/npm/cli。 也就是说,您必须在所述存储库中查找 v6.14.4。
我在 Windows 10 上也遇到过同样的问题。可以通过禁用 McAffe 保护来解决。
打开 McAffe Endpoint Security > 威胁预防 > 禁用访问保护和访问扫描模块(取消选中)
运行 > nvm 安装版本
@coreybutler :我认为如果 npm 未正确安装,您应该提供一些相关通知。
有同样的问题。 这是我的尝试,对我有用:
- 从https://nodejs.org/en/download/releases/以 zip 格式(或其他格式)下载需要的节点版本
- 如果
node_modules
目录已存在于 nvm 安装目录中的version drectory
中,则删除它(例如 C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4)。- 从步骤 1 中解压缩文件,并将
node_modules
目录复制到上一步中推断的version directory
。- npm 工作
谢谢@liuwenzhuang今天你的评论真的很有帮助。 几天来我一直在与这个错误作斗争
为什么人们从网站下载节点以与 nvm 一起使用,这不正是 nvm 的用途吗? 😉 你也可以根本不使用 nvm。
我有一个幻象符号链接 nvm 之前创建的,由于 shell 权限,它无法删除。 我猜这是因为我在 git bash shell 中使用 nvm 作为非提升用户。
我在管理员命令提示符下删除了它:
del /f c:\Program Files\nodejs
然后为我使用 nvm 下载的版本创建了新的符号链接:
mklink /j "C:\Program Files\nodejs" "C:\Users\USER_NAME\AppData\Roaming\nvm\NODE_VERSION"
我还没有尝试过nvm use NODE_VERSION
但是如果您在调用它之前删除符号链接,那么很有可能会为您创建链接(我猜这是预期的行为)。 很可能需要使用这样的东西: https ://github.com/imachug/win-sudo
有同样的问题。 这是我的尝试,对我有用:
- 从https://nodejs.org/en/download/releases/以 zip 格式(或其他格式)下载需要的节点版本
- 如果
node_modules
目录已存在于 nvm 安装目录中的version drectory
中,则删除它(例如 C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4)。- 从步骤 1 中解压缩文件,并将
node_modules
目录复制到上一步中推断的version directory
。- npm 工作
这有效!
McAfee + Win 10 + PowerShell 也有同样的问题。 - 非常感谢@liuwenzhuang
不知道为什么关闭,但我遇到了同样的问题,全新安装 Windows 10,全新安装 nvm,没有防病毒软件(内置除外)。 官方修复不是绕过我使用 nvm 的原因,是吗?
此评论对我有用: https ://github.com/coreybutler/nvm-windows/issues/475#issuecomment -538475058
只是在做nvm on
...我以为它在安装后直接“开启”😄
当你本地的 npm 版本是最新的时候,你安装最新的 node 时,它可能不会安装相同版本的 npm,会不会出现这种情况?
我的一台办公机器有 McAfee,我认为它正在停止安装(复制)npm 文件夹。 但是下面的步骤对我来说就像是一种拯救。 谢谢。
有同样的问题。 这是我的尝试,对我有用:
- 从https://nodejs.org/en/download/releases/以 zip 格式(或其他格式)下载需要的节点版本
- 如果
node_modules
目录已存在于 nvm 安装目录中的version directory
中,则删除它(例如 C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4)。- 从步骤 1 中解压缩文件,并将
node_modules
目录复制到上一步中推断的version directory
。- npm 工作
这对我有用,就像一个魅力!
我认为,通过
nvm-windows
添加一个测试步骤以确认任何nodejs
版本的成功安装将非常有助于节省时间。 如果失败,则提供一些可能的见解来解决它。
@coreybutler认为?
谢谢。
@Amitesh - 我认为进行完整性检查是个好主意。 然而; 我现在没有时间这样做(参见讨论标签,第一篇文章)。 如果有人想添加这个,我会接受 PR。
对于使用 nvm(1.1.7)的新安装节点(10.23.0),我仍然面临在 Windows 10 上无法识别 npm 的问题
我按照以下步骤但没有用
从https://nodejs.org/en/download/releases/以 zip 格式(或其他格式)下载需要的节点版本
如果 node_modules 目录已存在于 nvm 安装目录中的版本目录中,则删除它(例如 C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4)。
从步骤 1 中解压缩文件,并将 node_modules 目录复制到上一步中推断的版本目录。
npm 工作
有人可以指导我如何让这个工作:( @coreybutler有什么帮助吗?
刚刚找到一个解决方法,查看与防病毒保护相关的评论。
我使用的是 Windows 10 64 位版本 1909(内部版本 18363.1139)
最有用的评论
有同样的问题。 这是我的尝试,对我有用:
node_modules
目录已存在于 nvm 安装目录中的version drectory
中,则删除它(例如 C:UsersUSER_NAMEAppDataRoamingnvmv8.11.4)。node_modules
目录复制到上一步中推断的version directory
。