我正在
Windows 10 x64
跑步PhpStorm 2018.3
。 我已将 NodeJS 更新到 10.14.1,其中包括 NPM 6.4.1。
我遇到的问题是 PhpStorm 终端仍然显示 NPM 3.10.10,尽管它显示了正确的 Node 版本。
我已经尝试过:
这会带来麻烦,因为在我的 IDE 终端中运行的 NPM 版本无法看到全局安装的软件包。
来自 Windows 命令行的全局包
来自 PhpStorm 终端的全局包
我该如何查明真相?
从 PhpStorm 终端运行
where npm
显示本地依赖项已安装较旧的 NPM 版本
本地安装的 NPM 是否会导致终端无法看到我的全局包?
当我从项目文件夹中运行 Windows 命令行工具时,一切都按预期运行,这与 PhpStorm 终端不同。看到了正确的版本,看到了全局包,
where
命令看不到node_modules中安装的本地NPM
感谢莉娜提供的解决方案。事实证明,使用
PhpStorm 2018.3
,新的默认启用设置 将项目本地 ./node_modules/.bin
中的二进制文件添加到
$PATH
,因此终端将看到本地安装的 NPM 版本,而不是全局版本。 为了解决这个问题,我转到
Settings > Tools > Terminal
并取消选中此选项:
将项目根目录中的node_modules/.bin添加到%PATH%如果任何相关人员正在阅读本文,我建议允许用户添加二进制文件黑名单,在选中此选项时不应添加这些二进制文件。
将“node_modules/.bin”从项目根目录添加到 $PATH(设置 | 工具 | 终端)引起的 - 因为您在 npm
中有
node_modules/.bin
二进制文件,它也会添加到
%PATH%
,因此在终端中运行
npm
时使用。禁用此选项应该可以解决问题
通过“哪个节点”,您可以获得节点二进制文件的路径。如果你用“node -v”得到了错误的版本,很可能是路径不同。
在我的例子中,PHPStorm 终端中的路径是“/bin/node”,但常规终端中的路径是“/usr/local/bin/node”。所以我比较了 $PATH 并发现 PHPStorm 添加了“/bin”作为第一个条目,但这可能不是问题。
解决方案: