I\'m on Windows 10, but I\'m using git bash
. When running from git bash
the following:
DEBUG=foo node index.js
it wor
It seems like you're running it on Windows.
Assuming that you have Bash working as you said, I would make a script:
#!/bin/bash
DEBUG=foo node index.js
called e.g. run-debug
and use:
"scripts": {
"start": "bash run-debug"
},
in package.json
to make sure that the DEBUG=foo node index.js
command is interpreted by Bash and not command.com or whatever the shell in Windows is called. See Issue #6543: npm scripts shell select.
For cases when you want it to run even on systems without Bash, for maximum cross-platform compatibility, it's even better to use a Node script instead of a shell script:
"scripts": {
"start": "node run-debug.js"
},
In this case the run-debug.js
could contain something like:
let env = Object.create(process.env);
env.DEBUG = 'foo';
spawn('node', ['app.js'], {env});
See also:
Yes, indeed, I've found the following thread and it states that:
The shell config variable is only used by the npm explore command, which forks a subshell. It's not meant to be used to allow you to use, say, bash on Windows, or switch between Powershell and cmd.exe. Scripts are always run by the shebang line on Unix, and cmd.exe on Windows.
So it seems that's by design and there's no way to change it.