-
-
Notifications
You must be signed in to change notification settings - Fork 33.5k
Closed
Closed
Copy link
Labels
cliIssues and PRs related to the Node.js command line interface.Issues and PRs related to the Node.js command line interface.regressionIssues related to regressions.Issues related to regressions.
Description
- Version: 11.2.0
- Platform: Linux 64 bit
- Subsystem: src
I noticed a regression regarding --
following the refactoring in 8fd55fffee (#22392).
-
Node < 10.10:
$ echo "console.log(process.execArgv)" > test.js $ node -- test.js []
-
Node >= 10.10
$ echo "console.log(process.execArgv)" > test.js $ node -- test.js [ '--' ]
The double dash indicating the end of the exec args is now part of process.execArgv
while it previously was neither in process.execArgv
nor process.argv
. This prevents from safely spawning a Node process while escaping the main module name. The following pattern to respawn itself no longer works:
const args = [...process.exevArgv, "--", ...process.argv.slice(1)];
cp.spawn(process.execPath, args);
Calling node -- foo.js
results in node -- -- foo.js
in Node > 10.10 (it worked fine previously).
I caught it in CI when working on spawn-wrap
, a lib that heavily depends on how the node processes are spawned: https://travis-ci.org/demurgos/spawn-wrap/jobs/459508703
Metadata
Metadata
Assignees
Labels
cliIssues and PRs related to the Node.js command line interface.Issues and PRs related to the Node.js command line interface.regressionIssues related to regressions.Issues related to regressions.