gpt4 book ai didi

javascript - 在 JavaScript 中将字符串解析为命令和参数

转载 作者:搜寻专家 更新时间:2023-11-01 04:23:00 33 4
gpt4 key购买 nike

我需要解析用于 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'}}

我认为正则表达式是可能的,但我希望避免编写一些自定义的东西。任何人都知道任何现有的东西可以做到这一点吗?

编辑

问题和答案仍然很有值(value),但对于我的特定用例,我不再需要这样做。我将使用 spawn-command相反(更准确地说,我将使用 spawn-command-with-kill )不需要 commandargs 分开。这将使我的生活更轻松。谢谢!

最佳答案

可以自己使用正则表达式,但我强烈建议您看一下:

  • minimist通过子堆栈,或
  • yargs这是一个更全面的节点参数解析实现

两者都久经沙场并且得到了很好的支持; minimist 每月的下载量约为 3000 万次,而 yargs 的下载量接近一半。

很可能你可以找到一种方法来使用其中一个或另一个来获得你想要的 CLI 语法,除了 env 支持 IMO 应该单独处理(我无法想象为什么你想要对设置为命令一部分的环境变量有意见)

关于javascript - 在 JavaScript 中将字符串解析为命令和参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39303787/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com