当我在Linux系统上运行node -v
时,根据我的PATH上安装的二进制文件,我得到了v16.7.0
,但是当我的package.json
有一个scripts
元素,包括被调用的node -v
时,它打印v9.11.2
。为什么呢?
(这个问题被发现,因为它似乎实际上也使用旧版本,它省略了我想要运行的脚本使用的功能,但-v
是最小的例子。)
当我运行which
/whereis
node
/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
步骤。