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

问题描述 投票:0回答:2

我正在

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

分辨率

感谢莉娜提供的解决方案。事实证明,使用

PhpStorm 2018.3
,新的默认启用设置 将项目本地 ./node_modules/.bin
 中的二进制文件添加到 
$PATH
,因此终端将看到本地安装的 NPM 版本,而不是全局版本。  为了解决这个问题,我转到 
Settings > Tools > Terminal
 并取消选中此选项:

将项目根目录中的node_modules/.bin添加到%PATH%

如果任何相关人员正在阅读本文,我建议允许用户添加二进制文件黑名单,在选中此选项时不应添加这些二进制文件。

node.js phpstorm webstorm
2个回答
4
投票
问题是由

将“node_modules/.bin”从项目根目录添加到 $PATH设置 | 工具 | 终端)引起的 - 因为您在 npm

 中有 
node_modules/.bin
 二进制文件,它也会添加到 
%PATH%
,因此在终端中运行 
npm
 时使用。禁用此选项应该可以解决问题


0
投票
我在 Ubuntu 上也遇到了同样的问题,“node_modules/.bin”的终端设置对我不起作用,它已经被禁用了。

通过“哪个节点”,您可以获得节点二进制文件的路径。如果你用“node -v”得到了错误的版本,很可能是路径不同。

在我的例子中,PHPStorm 终端中的路径是“/bin/node”,但常规终端中的路径是“/usr/local/bin/node”。所以我比较了 $PATH 并发现 PHPStorm 添加了“/bin”作为第一个条目,但这可能不是问题。

解决方案:

    删除 /bin/node (sudo rm /bin/node)
  • 重新启动 PHPStorm 终端
© www.soinside.com 2019 - 2024. All rights reserved.