a.js:
const c = require("commander");
c
.option("--foo [value]")
.parse(process.argv);
console.log({ foo: c.foo, args: c.args });
Usage:
$ node a.js arg --foo value
{ foo: 'value', args: [ 'arg' ] }
$ node a.js foo --foo value
{ foo: [], args: [] }
Expected { foo: 'value', args: [ 'foo' ] }.