如何包含节点二进制npm的路径已使用


77

Windows,VSC,运行npm start得到了这个

npm WARN生命周期用于脚本的节点二进制文件是C:\ Program Files \ nodejs \ node.exe,但是npm使用的是C:\ somewhere \ AppData \ Roaming \ npm \ node_modules \ node \ bin \ node.exe本身。使用该--scripts-prepend-node-path选项可以包含执行二进制二进制文件npm的路径。

我知道这意味着我的本地版本与PATH变量(C:\ Program Files ...)中的版本不同。如何继续告诉它使用--scripts-prepend-node-path

我通过更换捉弄C:\Program Files\nodejsC:\somewhere\AppData\Roaming\npm\node_modules\node\bin在PATH变量,它并拿起新node.exe了but there is no node binary in the current PATH。再次建议使用该--scrip ts-prepend-node-path选项来包含已用以下命令执行的节点二进制文件npm的路径

Answers:


133

就像我说的那样,替换PATH系统变量中的实际路径并不能完全解决问题,它仍然抱怨缺少二进制文件。发现这个解决了there is no node binary in the current PATH问题。恢复了原始PATH,并对其进行了尝试。

只需在应用程序的根文件夹中创建一个名为.npmrc的文件,然后将以下行放入其中:

scripts-prepend-node-path=true


3
不知道为什么,但这对我有用,但是npm config set scripts-prepend-node-path auto下面的命令答案却没有。谢谢。
哈特利

91

这是另一种可行的方法: npm config set scripts-prepend-node-path auto


由于问题似乎发生在不同的项目中,因此这是首选的答案,因此您无需在每个项目中创建一个.npmrc文件,这就是公认的答案所建议的。
卡斯

3
将此作为“可接受的答案”接受,因为a)(在我所有的环境中)都有效,并且b)如@kas所指出的那样,使生活变得更加轻松。
肖恩·斯潘塞

同意@ShawnSpencer,这是一个程序化解决方案
Egeshi '20

19

您的节点二进制文件和您的npm之间的冲突


如果错误看起来像这样:

npm尝试使用与其用于运行自身的节点相同的节点。

通过将节点目录添加到您的中来解决此冲突PATH

npm config set scripts-prepend-node-path true

从npm文档中

npm run将NODE环境变量设置为执行npm的可执行节点。另外,如果传递了--scripts-prepend-node-path,则将节点所在的目录添加到PATH中


6

在Visual Studio 2017中遇到了这个问题,我改为告诉VS始终使用从nodejs.org安装的NodeJS,而不要使用Visual Studio随附的即时冻结的NodeJS。(VS2015附带的那个版本太旧了,无法再使用了。)

在Visual Studio中,转到“工具”>“选项”>搜索“外部Web工具”>,并确保“ C:\ Program Files \ nodejs”(或在安装了nodejs.org的位置)位于路径列表中的第一位,并在必要时添加它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.