我需要解析用于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
),它不需要命令和args是分开的.这将使我的生活更轻松.谢谢!
最佳答案