我需要解析用于cross-spawn的字符串。
从以下字符串中:
cmd foo bar
cmd "foo bar" --baz boom
cmd "baz \"boo\" bam"
cmd "foo 'bar bud' jim" jam
FOO=bar cmd baz
对于一个对象:
{command: 'cmd', args: ['foo', 'bar']}
{command: 'cmd', args: ['foo bar', '--baz', 'boom']}
{command: 'cmd', args: ['baz "boo" bam']}
{command: 'cmd', args: ['foo \'bar bud\' jim', 'jam']}
{command: 'cmd', args: ['baz'], env: {FOO: 'bar'}}
我认为可以用正则表达式实现,但我希望避免编写自定义代码。是否有现成的工具可供使用?
编辑
这个问题和答案仍然有价值,但针对我的特定用例,我不再需要这样做。我将使用spawn-command
(更准确地说,我将使用spawn-command-with-kill
),它不需要将command
和args
分开。这将让我的生活变得更轻松。谢谢!
FOO=bar cmd baz
),对吧? - Soviutp-s
,它允许您指定命令字符串,并将其作为子进程调用。使用cross-spawn
,您需要分别提供command
和args
。但是,如果我使用spawn-command
,那么我就不必这样做(我可以直接发送整个命令),这消除了我一开始需要这样做的需求! - kentcdodds