问题标签 [yargs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1239 浏览

yargs - 使用 Yargs 传递带空格的字符串

我正在使用 yargs 来收集传递的任何参数。我的场景是能够传递带有双引号的空格的字符串,如下所示:

但它实际上将剩余的字符串"my作为参数值yargs.argv.n并放入_. 我知道当我们使用转义字符时它会起作用,"但我不能假设这对我的用户来说是显而易见的。

谁能帮我看看是否有任何配置或任何黑客可以用来收集整个字符串?

0 投票
1 回答
370 浏览

yargs - yargs 是否有一个我可以在每个命令之前运行的钩子?

我需要在每个命令运行之前运行一些代码,使用命令的名称。我在 yargs api 文档中找不到任何内容。

具体来说,我想删除我的每个命令创建的缓存。例如命令foo,在 中创建一个缓存./.tmp/foo。我只想在每次运行之前删除该缓存我可以从每个命令回调中删除它,但很好奇是否有更编程的方式来做到这一点。

yargs 是否有任何我可以用来完成此任务的功能?

0 投票
1 回答
1101 浏览

node.js - 将参数传递给 Node.js 程序

我正在尝试为我正在创建的 Node.js 程序传递 2 个强制参数。

我习惯Yargs这样做:

这工作正常,有一个小问题。我想像这样激活脚本:

节点 index.js -m val -m2 val2

它不起作用,我收到一条错误消息,提示缺少 m2。只有当我-在 m2 之前添加另一个它才有效,这意味着我必须这样做:

节点 index.js -m val1 --m2 val2

有没有办法让它像我一开始想要的那样接受参数?

0 投票
3 回答
4668 浏览

node.js - yargs 需要 builder 选项之一

如何从命令中的构建器对象中要求我的选项之一

在这里,我希望用户通过命令idfirst选项read

此外,当使用无效选项运行此命令时,它不会显示错误

yargs: ^12.0.5

0 投票
1 回答
156 浏览

node.js - Proxyquire : 代理需要 yargs 并将值传递给它

我有一个如下 src/example.js 的代码:

上面的单元测试用例,我正在尝试编写:

当我运行上面我得到以下错误:

我在这里做错了什么?

编辑:很明显,如果我写我的 src/example.js 如下:

并编写测试用例如下:

有用!去搞清楚!这可能是因为我在 yargs 中设置了默认值。但是如果不进行上述更改,我不知道如何使其正常工作!

0 投票
1 回答
812 浏览

javascript - 如何单元测试使用 yargs 的应用程序在多种语言环境/语言中提供正确的响应?

我正在开发一个命令行应用程序,该应用程序使用 yargs 处理传递给该应用程序的选项并以多种语言运行。

使用非英语语言环境时测试失败,因为测试的预期结果是用该语言硬编码的。

例如,以下代码以英语返回通过的测试,但是如果语言设置为法语,则将失败,因为 Yargs 以法语返回错误。

这让我想到了我的问题。处理这种情况的最佳做法是什么?我一直在研究 Yargs 甚至是它用于翻译的 y18n 包,但并没有看到解决这个问题的直接方法。

我想一个可能的解决方案是让测试期望的字符串可能通过 y18n 库进行翻译,或者可能对每种支持的语言进行测试,但这可能有点矫枉过正。

在这种情况下你做了什么?我愿意知道!

谢谢!

0 投票
2 回答
288 浏览

javascript - 命令未使用 yarg npm 包添加

我正在尝试使用 yarg 添加命令,但是当我运行我的代码时,我的命令没有添加。

这是我正在尝试的:

运行命令:

没有添加命令。

此外,当我尝试通过将 add 作为参数(即 node app.js add)来运行我的代码时,什么也没有显示。

我现在该怎么办?

0 投票
3 回答
496 浏览

node.js - 终端不显示 yargs 的处理程序值

我正在学习 node.js,我遇到了第一个问题。安装 yargs 并尝试创建 yargs 命令后,它没有显示在终端中。当我输入node app.js mycommand终端时,它只返回参数数组,而不是我的命令,但如果我输入“node app.js --help”,它会返回每个命令。难道我做错了什么?

我想让我的 console.log 在我输入时显示“一些文本”,'node app.js mycommand'但实际上我只有 args 数组:

{ _: [ 'mycommand' ], '$0': 'app.js' }

0 投票
1 回答
480 浏览

node.js - yargs 警告:提供的参数过多。预计最多 1 个,但收到 2 个

我的 yargs 配置有问题:

我执行的脚本如下:

我收到了这个错误:

你知道为什么吗 ?谢谢您的帮助。

0 投票
1 回答
571 浏览

node.js - 如何修复“语法错误:应为“#”、“\n”、“\r”或[\t],但找到“[”。” yargs 模块检索哪个?

我目前正在使用 bitbucket 管道进行持续部署。我已将“npm test”命令放入管道中,因为我使用 mocha 对我的节点项目进行单元测试。

当我在本地 shell 上运行“npm test”来测试我的路由时,它们每个都可以工作。但是当 bitbucket 的临时服务器运行命令时,我检索到这个错误:

我最近在我的存储库中实现了一个 config.toml 文件,以便在我的代码中放入一些变量(如域、路径等)。从那一刻起,在管道中运行的单元测试不再起作用。

这是 toml 解析的问题吗?

这是我的 toml 文件:

任何提示都应该非常感激。