NPM意外地使用了旧版本的Node



当我在Linux系统上运行node -v时,根据我的PATH上安装的二进制文件,我得到了v16.7.0,但是当我的package.json有一个scripts元素,包括被调用的node -v时,它打印v9.11.2。为什么呢?

(这个问题被发现,因为它似乎实际上也使用旧版本,它省略了我想要运行的脚本使用的功能,但-v是最小的例子。)

当我运行which/whereisnode/npm时,我得到了相同的结果,即二进制文件所在的预期目录,它位于我的PATH上。在查看我的PATH下的其他目录时,我没有看到任何node/npm可执行文件。

echo "$NODE_PATH"(带或不带引号)打印空行。

我在$HOME/.npmrc文件中没有看到任何答案。

它从哪里得到Node v9,我该如何修复,以便从npm脚本中调用node调用更现代的版本?

在系统路径之前插入用户的全局node_modules/.bin文件夹,因此如果节点安装在那里,它将首先被使用。使用npm uninstall -g node命令不一定会删除它,所以您可能必须手动删除它。

这个位置可以通过使用whereis node命令作为npm脚本的一部分来找到,而不是使用node -v步骤。

最新更新