ChatGPT解决这个技术问题 Extra ChatGPT

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

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

我通过用 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 的路径


J
Jeb50

就像我说的,替换 PATH 系统变量中的实际路径并不能完全解决问题,它仍然抱怨二进制文件丢失。发现 this 解决了 there is no node binary in the current PATH 问题。于是我恢复了原来的PATH,然后:

只需在应用程序的根文件夹中创建一个名为 .npmrc 的文件,将这一行放入其中:scripts-prepend-node-path=true


不知道为什么,但这对我有用,但下面的 npm config set scripts-prepend-node-path auto 命令答案没有。谢谢。
只是想补充一点,截至 2021 年 7 月,这仍然有效。
此选项已在最近的 npm 中删除:github.com/npm/cli/issues/2808
g
godbout

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


由于该问题似乎发生在不同的项目中,因此这是更可取的答案,因此您无需在每个项目中创建 .npmrc 文件,这是公认的答案所暗示的。
接受这个作为接受的答案,因为 a) 它可以工作(在我的所有环境中)和 b) 正如@kas 指出的那样,它让生活更轻松。
L
Lior Elrom

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

如果错误看起来像:

npm 正在尝试使用与它自己运行的节点相同的节点。

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

npm config set scripts-prepend-node-path true

From the npm documentation

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


R
Ron Newcomb

在 Visual Studio 2017 中遇到这个问题,我告诉 VS 始终使用我从 nodejs.org 安装的 NodeJS,而不是 Visual Studio 附带的即时冻结的。 (VS2015 附带的那个太古老了,它不再真正工作了。)

在 Visual Studio 中,转到 TOOLS > OPTIONS > 搜索 EXTERNAL WEB TOOLS > 并确保“C:\Program Files\nodejs”(或安装 nodejs.org 的任何位置)位于路径列表的首位,如有必要,请添加。


D
Dhruv Sehgal

对于 WebStorm,使缓存无效并重新启动对我有用。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅