PhpStorm/WebStorm 终端显示旧的 NPM 版本

PhpStorm/WebStorm terminal shows old NPM version

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

Windows 命令行工具显示正确的版本

PhpStorm 设置显示正确的版本

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

我试过:

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

来自Windows命令行的全局包

来自 PhpStorm 终端的全局包

我怎样才能弄清楚这个问题?

更新

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

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

更新 2

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

中的本地npm

分辨率

感谢莉娜的解决方案。事实证明,使用 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%

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

问题是由将'node_modules/.bin'从项目根目录添加到$PATH设置|工具|终端)引起的- 因为你在 node_modules/.bin 中有 npm 二进制文件,所以它也被添加到 %PATH% 中,因此在终端中的 运行 npm 中使用。禁用此选项应该可以解决问题