'NODE_OPTIONS'不被识别为内部或外部命令

46

我正在一台Windows 10机器上尝试从Git Bash终端运行构建脚本。

在我的终端中,Node可以被正确地识别,例如当我运行node --version时,我可以得到版本号。

但是当我运行构建脚本时,出现以下错误:

'NODE_OPTIONS' is not recognized as an internal or external command,
operable program or batch file.

我猜我需要添加一些内容到我的 PATH 变量中,来使这个工作,但是具体是什么呢?


2
你能展示一下你正在尝试运行的构建脚本吗? - LEQADA
4个回答

59

使用cross-env包轻松设置环境变量。

步骤1:

从npm安装cross-env

npm i cross-env

在你的package.json文件中(例如,在这个例子中你需要运行“start”命令,该命令具有“NODE_OPTIONS”),

{
    "name": "your-app",
    "version": "0.0.0",
    "scripts": {
    ...
    "start": "NODE_OPTIONS=<your options> <commands>",
    }
}

步骤2

在需要运行NODE_OPTIONS的脚本(在这种情况下是“start”脚本)中添加“cross-env”。

{
    "name": "your-app",
    "version": "0.0.0",
    "scripts": {
    ...
    "start": "cross-env NODE_OPTIONS=<your options> <commands>",
    }
}

35

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

npm install -g win-node-env

2
我可以确认,这在默认设置下(如next.js)可以正常工作。我们不希望为不同的平台重写package.json(例如使用cross-env的建议)。 - Jonas Sandstedt
这个解决方案在 Next.js 上运行完美,强烈推荐给其他人使用。 - dev_ramiz_1707

14

这不是 PATH 的问题, NODE_OPTIONS 是一个环境变量,在启动构建之前需要设置。在 Windows 10 中设置环境变量需要在终端模式下使用 set 命令。想了解更多,请参考 SUPERUSER 论坛上的文章

针对你的情况,只需在 NODE_OPTIONS 前面添加 set 就可以解决问题。

以下是如何整合到 package.json

...
"scripts": {
   ...
   "build": "set NODE_OPTIONS=--max_old_space_size=4096 && next build"
   ...
}
...

0

通过 F5 启动节点进程和调试器的方法,无需与环境变量搏斗

确保删除 .vscode/launch.json 文件。

1. 打开运行和调试面板

ctrl+shift+d

2. 点击 Node.js

enter image description here

3. 不要直接点击“运行脚本:dev”,而是点击旁边的齿轮图标。

enter image description here

4. 你的launch.json应该类似于:
{
    "configurations": [
       {
            "type": "node-terminal",
            "name": "Run Script: dev",
            "request": "launch",
            "command": "yarn run dev",
            "cwd": "${workspaceFolder}"
        }
    ]
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接