Я хочу иметь возможность взять командную строку, например:
some/script --option="Quoted Option" -d --another-option 'Quoted Argument'
И проанализируйте его во что-то, что я могу отправить на child_process.spawn
:
spawn("some/script", ["--option=\"Quoted Option\"", "-d", "--another-option", "Quoted Argument"])
Все библиотеки разбора, которые я нашел (например, minimist и т.д.), делают слишком много здесь, анализируя его на какой-то объект опций и т.д. Я в основном хочу эквивалент любого Node делает для создания process.argv
в первую очередь.
Это похоже на разочаровывающее отверстие в собственных API, поскольку exec
принимает строку, но не выполняет ее так же безопасно, как spawn
. Прямо сейчас я взламываю это, используя:
spawn("/bin/sh", ["-c", commandString])
Однако я не хочу, чтобы это сильно привязывалось к UNIX (в идеале это тоже работало бы на Windows). Halp?