NodeJS 如何包含执行npm的节点二进制文件的路径

dsf9zpds  于 2024-01-07  发布在  Node.js
关注(0)|答案(5)|浏览(132)

Windows,VSC,运行npm start得到了这个
npm WARN lifecycle用于脚本的节点二进制文件是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
我玩了一个小把戏,在PATH变量中用C:\somewhere\AppData\Roaming\npm\node_modules\node\bin替换了C:\Program Files\nodejs,它确实拾取了新的node.exe得到了but there is no node binary in the current PATH。再次建议使用--scrip ts-prepend-node-path选项来包含执行npm的节点二进制文件的路径

enxuqcxy

enxuqcxy1#

就像我说的,替换PATH系统变量中的实际路径并没有完全解决这个问题,它仍然抱怨二进制文件丢失。发现this解决了there is no node binary in the current PATH问题。所以我恢复了原始PATH,然后:
只需在应用的根文件夹中创建一个名为**.npmrc**的文件,将以下行放入其中:
scripts-prepend-node-path=true

pexxcrt2

pexxcrt22#

下面是另一种工作方式:npm config set scripts-prepend-node-path auto

s5a0g9ez

s5a0g9ez3#

Node Binary和NPM冲突

如果错误看起来像这样:
npm正在尝试使用与它用来运行自己的节点相同的节点。
通过将节点目录添加到PATH来解决此冲突:

npm config set scripts-prepend-node-path true

字符串
From the npm documentation
npm run将NODE环境变量设置为npm执行时使用的节点可执行文件。此外,如果传递了--scripts-prepend-node-path,则会将节点所在的目录添加到PATH中

xghobddn

xghobddn4#

在Visual Studio 2017中出现了这个问题,我告诉VS总是使用我从nodejs.org安装的NodeJS,而不是Visual Studio附带的冻结时间。(VS2015附带的那个太老了,它不再工作了。)
在Visual Studio中,转到TOOLS > OPTIONS > search for EXTERNAL WEB TOOLS >,并确保“C:\Program Files\nodejs”(或nodejs.org安装的任何位置)位于路径列表的第一位,必要时添加它。

ma8fv8wu

ma8fv8wu5#

对于WebStorm,无效缓存和重新启动对我来说很有效。

相关问题