vscode-js-debug will inject an env NODE_OPTIONS
.
Which will cause a bug of Node.js 10.x to crash when fork child process.
const cp = require('child_process');
const path = require('path');
console.log(process.env.NODE_OPTIONS);
console.log(process.execPath);
console.log(process.version);
const filePath = path.join(__dirname, 'lib space/test.js');
console.log(filePath);
const child = cp.spawn(process.execPath,
[ '-e', 'console.log(process.env.NODE_OPTIONS)' ],
{
stdio: 'inherit',
env: {
NODE_OPTIONS: `--require "${filePath}"`
}
});
child.on('exit', function (code, signal) {
console.log(code, signal)
});
10.x is crash.
Step:
{
"dependencies": {
"node": "^10.22.1"
}
}
Run:
$ npm i
$ npm start
Error: Cannot find module '"/path/to/test-tnpm/lib'
Change node to 12.x, it works.
Step:
{
"dependencies": {
"node": "^12.15.0"
}
}
Run:
$ rm -rf node_modules
$ npm i
$ npm start