“NODE_OPTIONS”未被识别为内部或外部命令

18 windows path-variables node.js git-bash

我在 Windows 10 机器上尝试从 git bash 终端运行构建脚本。

在我的终端节点上识别得很好,例如我在运行node --version.

但是运行构建脚本失败并出现以下错误:

'NODE_OPTIONS' is not recognized as an internal or external command,
operable program or batch file.
Run Code Online (Sandbox Code Playgroud)

我猜我需要在我的 PATH 变量中添加一些东西才能让它工作,但是什么?

小智 42

使用可以轻松设置环境变量的环境包。

第1步:

从 npm 安装 cross-env

npm i cross-env
Run Code Online (Sandbox Code Playgroud)

在您的 package.json 文件中(在此示例中,您需要运行包含“NODE_OPTIONS”的“start”命令)

{
    "name": "your-app",
    "version": "0.0.0",
    "scripts": {
    ...
    "start": "NODE_OPTIONS=<your options> <commands>",
    }
}
Run Code Online (Sandbox Code Playgroud)

第2步

在您需要运行 NODE_OPTIONS 的脚本中添加“cross-env”。(在本例中为“开始”脚本)

{
    "name": "your-app",
    "version": "0.0.0",
    "scripts": {
    ...
    "start": "cross-env NODE_OPTIONS=<your options> <commands>",
    }
}
Run Code Online (Sandbox Code Playgroud)


小智 42

对我来说安装下面提到的包解决了问题

npm install -g win-node-env
Run Code Online (Sandbox Code Playgroud)

  • 我可以确认这对于像 next.js 这样的默认设置来说工作得很好。必须为不同的平台重写 package.json (就像使用跨环境的建议)对我们来说不是一个选择。 (4认同)

小智 15

不是路径问题,NODE_OPTIONS 是一个环境变量,需要在开始构建之前设置。set要在 Windows 10 中设置环境变量,您需要在终端模式下使用该命令。请参阅 SUPERUSER 论坛上的这篇文章以了解更多信息

对于您的情况,只需在set之前添加NODE_OPTIONS即可解决您的问题。

以下是将其集成到package.json中的方法:

...
"scripts": {
   ...
   "build": "set NODE_OPTIONS=--max_old_space_size=4096 && next build"
   ...
}
...
Run Code Online (Sandbox Code Playgroud)