问题标签 [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 投票
2 回答
74 浏览

node.js - 尝试使用 PM2 设置使用 YARGS 构建的服务

所以,我有一个脚本来定义一个服务,我可以在 mongo 上使用更改流。我用 Yargs 做的,所以我可以将所有参数传递给应用程序。但是当我用 pm2 尝试 yo daemon 它时,我很难用我写的所有参数传递命令。这是服务 yargs 设置:

所以基本上我有以下行可以在我的控制台中运行:

提前致谢!

0 投票
2 回答
23 浏览

javascript - 为什么我的 nodeJS 中的 console.log 没有给出正确的结果?

当我使用

它给了我终端的结果

为什么不打印值?

0 投票
1 回答
194 浏览

javascript - yargs 说通过 JSON 提供的嵌套参数“缺失”

使用 yargs 16.2.0,我定义了一些嵌套选项并通过配置文件提供它们,但 yargs 仍然声称它们丢失了:

亚格斯

配置文件

通过...执行

然后我编辑node_modules/yargs-parser/build/index.cjs原始hereargv )并在解析配置JSON后添加了一行注销:

结果输出:

我在node_modules/yargs/build/index.cjs第 1472 行之后(就在显示“缺少所需参数”消息之前,并且 JSON 输出仍然包含该test.something参数之前)进行了相同的更改。


那么,为什么 yargs 声称我的论点没有提供,甚至argv表明它们是?

0 投票
1 回答
285 浏览

node.js - 如果传递了无效标志,如何让 Yargs 退出?

我正在使用Yargs JavaScript 库来解析命令行参数。

下面是一个 Hello-World 风格的 Yargs 程序。默认情况下,它包括“--help”和“--version”,我添加了第三个选项“--copy”:

但是,使用虚假标志(例如“--foo”)运行程序仍然可以工作。如果传递了无效标志,我希望程序抛出错误并退出。我该怎么做呢?

0 投票
1 回答
571 浏览

yarnpkg - 错误的解决方案是什么:找不到模块'yargs'

执行了 ff 命令但仍然出现错误

使用管理员权限从 powershell 运行此命令: npm install --global --production windows-build-tools

cmd: npm i yargs --save yarn add yargs

0 投票
0 回答
487 浏览

javascript - 如何使用 Jest (Javascript/Typescript) 测试 yargs 应用程序

我已经在这里问了关于 Jest 存储库的问题。并且还在这里推送了一个示例应用程序来重现该行为。但为了完整起见,这里是完整的故事:
本质上是这样的(./parsers.ts):

cmds文件夹中,有一个remote.ts

然后是add.ts

现在我还有两个文件:

当我运行它时,它失败了,这是正确的。因为remote addcommand 需要两个参数。如果我通过正确的输入,它会给出正确的输出。意味着一切正常。

Jest 配置也是:

但是当我运行上面的测试时,它完全没有失败,就好像解析器没有配置一样。(有趣的是,断言失败了,因为foo它没有被提取为一个属性argv,再次显示解析器没有获取cmds文件夹内的配置。)

不确定这是错误还是功能;在测试 yargs 解析器时,解析器配置出现问题,因此命令 目录中的任何内容都不会加载到解析器中。
如何使用 Jest 测试我的解析器?谢谢。

0 投票
2 回答
897 浏览

node.js - yargs.command 不起作用(错误消息:yargs.command 不是函数)

我正在尝试创建 yargs 命令,当我运行应用程序时出现错误。

当我运行以下命令时:

在我的 node.js 代码上:

错误:


  • 亚格斯版本:1.1.0
  • 节点版本:v14.16.0
  • vs 代码版本
  • 1.55.2(用户设置)操作系统:Window 10

编辑:(我已经查看过这个问题,但它没有帮助,因为已经添加了 .parse()

0 投票
0 回答
73 浏览

node.js - Yargs:在严格模式下抛出的错误仍然未被捕获

我正在使用 Yargs 构建一个交互式 CLI,它从标准输入获取命令并在发生错误时继续执行。从官方文档中,我发现yargs.parse可以提供我需要的功能。然而,尽管进程确实会继续出错,但它会不受控制地打印错误调用堆栈;此外,即使用户稍后给出了正确的命令,仍然会打印之前的所有错误调用堆栈,这肯定会混淆和误导用户。根据格式,我想这是抛出未捕获错误时的自动行为,所以我的问题是:我应该在哪里以及如何捕获这些错误?显然中提供的回调函数yargs.parse不是引发错误的范围。
这是一个演示片段

正如你所看到的,我已经尝试将整个语句和命令处理程序放在一个 try-catch 块中,但是,错误仍然没有被捕获。
演示图片

0 投票
1 回答
175 浏览

node.js - 为第三方cli包编写单元测试用例

我有一个使用 yargs 构建的基本 CLI 程序。我能够涵盖应用程序中导出函数的测试用例。

正如您在下面看到的,测试覆盖不是从哪一行完成的12-18。我们如何为第三方包编写单元测试覆盖率yargs

index.js

index.test.js

测试覆盖率

0 投票
1 回答
378 浏览

yargs - 更新到最新版本后 yargs argv 不再工作

我有这个代码

获取argv.applyChanges布尔值。但是在对 yargs 17 进行最新更新后,我在argv.applyChanges

属性 'applyChanges' 不存在于类型 '{ [x: string]: unknown; applyChanges: 布尔值 | 不明确的; _:(字符串|数字)[];$0:字符串;} | 承诺<{ [x:字符串]:未知;applyChanges: 布尔值 | 不明确的; _:(字符串|数字)[];$0:字符串;}>'。“Promise<{ [x: string]: unknown; 类型上不存在属性“applyChanges” applyChanges: 布尔值 | 不明确的; _:(字符串|数字)[];$0:字符串;}>'。

我尝试使用await但没有成功。我该怎么办?此代码与以前的 yargs 版本 16.xx 一起使用