43

I'm on a windows 10 machine trying to run a build script from the git bash terminal.

On my terminal node is recognized just fine, for example I get the version when I run node --version.

But running the build script fails with the following error:

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

I'm guessing I need to add something to my PATH variables to get this to work, but what?

4 Answers4

57

Use cross-env package which easily sets environment variables.

Step 1:

Install cross-env from npm

npm i cross-env

In your package.json file (In this example your need is to run 'start' command which has 'NODE_OPTIONS')

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

Step 2

Add 'cross-env' in the script which you need to run NODE_OPTIONS. (In this case 'start' script)

{
    "name": "your-app",
    "version": "0.0.0",
    "scripts": {
    ...
    "start": "cross-env NODE_OPTIONS=<your options> <commands>",
    }
}
Sivanesh S
  • 1,117
  • 10
  • 16
31

For me installing the below mentioned package solved the problem

npm install -g win-node-env
Josef
  • 2,869
  • 2
  • 22
  • 23
  • 2
    I can confirm that this works fine with default setup like next.js. Having to rewrite your package.json for different platforms (like the suggestion to use cross-env) is not an options for us. – Jonas Sandstedt Mar 30 '22 at 09:06
  • working perfect for next.js and recommended to other for this solution. – dev_ramiz_1707 Nov 22 '22 at 12:12
10

Not a PATH issue, NODE_OPTIONS is an ENVIRONMENT VARIABLE that needs to be set before starting your build. To set en environment variable in Windows 10 you need to use the set command in a terminal mode. See this article on SUPERUSER forum to learn more.

In your case, just add set before NODE_OPTIONS and that will fix your issue.

Here's how to integrate it in package.json:

...
"scripts": {
   ...
   "build": "set NODE_OPTIONS=--max_old_space_size=4096 && next build"
   ...
}
...
Guy Dumais
  • 301
  • 4
  • 8
0

A way to launch both the node process and the debugger via F5, which does not require wrestling with env vars.

Make sure .vscode/launch.json is deleted.

1. Open the Run & Debug pane

ctrl+shift+d

2. Click on Node.js

enter image description here

3. DO NOT click on "Run script: dev" directly, instead click on the cog next to it

enter image description here

4. Your launch.json should look similar to:
{
    "configurations": [
       {
            "type": "node-terminal",
            "name": "Run Script: dev",
            "request": "launch",
            "command": "yarn run dev",
            "cwd": "${workspaceFolder}"
        }
    ]
}
Mark Toman
  • 3,090
  • 2
  • 17
  • 18