Исходя из вашего примера кода, проблема заключается в том, что вы подготовили массив строк, который разбил строку с пробелами до того, как синтаксический анализатор увидит ее:
$ node -e 'console.log(`executable --param "a b"`.split(" "))'
[ 'executable', '--param', '"a', 'b"' ]
Простое исправление, когда вручную установка аргументов состоит в том, чтобы создать массив параметров самостоятельно, вместо использования строки и split
, например:
$ node -e 'console.log(["executable", "--param", "a b"])'
[ 'executable', '--param', 'a b' ]
или
const a = minimist(['executable', '--param', 'a b'])
Если то, что вы нужно разбить одну строку на аргументы, как это делает оболочка, чего не делает Commander, или Yargs, или minimist.
Вы можете посмотреть на https://www.npmjs.com/package/shell-quote, который имеет команда разбора.