npm -v 显示错误版本

问题描述

我在 Windows 机器上使用来自 Cmder(基于 ConEmu 的终端)的 bash shell。

我正在关注 nodeschool.io(一个包含大量教程的网站,您可以使用命令行完成)的 how-to-npm 研讨会。 npm 研讨会的第一个模块让您使用 npm -v 检查您拥有的 npm 版本,然后如果这不是最新版本,则让您使用 npm install -g npm 获取最新版本.

所以,我输入了该命令,即 npm install -g npm,然后当我通过 how-to-npm 进行验证时(验证是 nodeschool 检查您是否成功满足挑战要求的方式) ),how-to-npm 说我当前的版本是 7.15.1(这确实是 npm 的最新版本),所以我通过了。 (在运行 npm install -g npm 之前,我失败了,因为我的 npm 版本不是最新的 npm 版本)。

然而,当我再次输入 npm -v 时,它仍然显示 6.14.13(旧版本)。我尝试关闭并重新打开我的终端,重新安装最新版本等,但 npm -v 一直显示旧版本。这不是世界上最大的交易,但我想知道为什么会发生这种情况。 how-to-npm nodeschool 模块识别出我的版本是最新的,但 Bash 一直显示旧版本号。即使我使用 Bash 运行安装命令,cmd.exe 和其他 shell 在输入 npm -v 时也能正确显示新的更新版本。只有 Bash 一直显示旧版本号。

为什么会这样?为什么我不能更新 Bash 使用的 npm 版本。 我已经手动尝试过 npm install -g npm@latestnpm install -g npm@7.15.1,但它们都不起作用。 Bash 的 npm 版本停留在 6.14.13。我可以在其他 shell 中自由、轻松地将版本更改为新版本和旧版本,但不能在 Bash 中。

编辑:我发现执行 bash -c cmd 然后再次输入 bash 将在该会话期间显示正确的 npm 版本,但是如果我退出终端并再次打开它, npm 版本又回到旧版本了。

Edit2:对此的解决方法是以管理员身份运行 powershell 并执行

Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
npm install -g npm-windows-upgrade
npm-windows-upgrade

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)