node.js - PhpStorm/WebStorm 终端显示旧的 NPM 版本

标签 node.js phpstorm webstorm

我在 Windows 10 x64 上运行 PhpStorm 2018.3。我已将 NodeJS 更新到 10.14.1,其中包括 NPM 6.4.1。

Windows 命令行工具显示正确的版本 enter image description here

PhpStorm 设置显示正确的版本 enter image description here

我遇到的问题是 PhpStorm 终端仍然显示 NPM 3.10.10,尽管它显示了正确的 Node 版本。

enter image description here

我试过:

  • 重启 PhpStorm
  • 重启电脑
  • 卸载并重新安装 Node,然后重新启动计算机

这会导致问题,因为在我的 IDE 终端中运行的 NPM 版本无法看到全局安装的包。

来自 Windows 命令行的全局包

enter image description here

来自 PhpStorm 终端的全局包

enter image description here

我如何弄清楚这个问题?

更新

从 PhpStorm 终端运行 where npm 显示本地依赖项已安装较旧的 NPM 版本

enter image description here

enter image description here

是否期望本地安装的 NPM 使终端无法看到我的全局包?

更新2

当我从项目文件夹中运行 Windows 命令行工具时,一切都按预期工作,这与 PhpStorm 终端不同。看到正确的版本,看到全局包,where命令看不到安装在node_modules

中的本地npm

enter image description here

决议

感谢 Lena 提供的解决方案。事实证明,对于 PhpStorm 2018.3a new enabled-by-default setting将项目本地 ./node_modules/.bin 中的二进制文件添加到 $PATH,因此终端将看到本地安装的 NPM 版本,而不是全局版本。为了解决这个问题,我转到 Settings > Tools > Terminal 并取消选中此选项:

Add node_modules/.bin from the project root to %PATH%

如果涉及的任何人正在阅读本文,我建议用户添加一个二进制文件的黑名单,该二进制文件不应在检查此选项时添加。

最佳答案

问题是由 Add 'node_modules/.bin' from the project root to $PATH (Settings | Tools | Terminal) - 因为你有 node_modules/.bin 中的 npm 二进制文件,它也被添加到 %PATH% 中,因此在终端中运行 npm 时使用。禁用此选项应该可以解决问题

关于node.js - PhpStorm/WebStorm 终端显示旧的 NPM 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53559809/

相关文章:

node.js - 上传文件,获取fakepath

php - jQuery $.post 语法

PhpStorm - 如果名称为 "myclass.php",则无法打开 PHP 文件

javascript - 使用 WebStorm 将 AngularJS Seed 项目提交到 GIT 时出现警告

git - WebStorm(PhpStorm、IntelliJ IDEA、PyCharm)与 Git 的问题

javascript - reactRouter2.default 使用 Babel 未定义

javascript - node.js 中未记录的 response.finished

javascript - 使用 node、mocha 和 chai 进行测试(should/bdd 语法)

部署时的 PHPStorm "Collecting files"

intellij-idea - PHPStorm 中的 'Resource Root' 名称是什么?就此而言,PHPStorm 认为什么是资源?