问题标签 [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.
node.js - 尝试使用 PM2 设置使用 YARGS 构建的服务
所以,我有一个脚本来定义一个服务,我可以在 mongo 上使用更改流。我用 Yargs 做的,所以我可以将所有参数传递给应用程序。但是当我用 pm2 尝试 yo daemon 它时,我很难用我写的所有参数传递命令。这是服务 yargs 设置:
所以基本上我有以下行可以在我的控制台中运行:
提前致谢!
javascript - 为什么我的 nodeJS 中的 console.log 没有给出正确的结果?
当我使用
它给了我终端的结果
为什么不打印值?
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
表明它们是?
node.js - 如果传递了无效标志,如何让 Yargs 退出?
我正在使用Yargs JavaScript 库来解析命令行参数。
下面是一个 Hello-World 风格的 Yargs 程序。默认情况下,它包括“--help”和“--version”,我添加了第三个选项“--copy”:
但是,使用虚假标志(例如“--foo”)运行程序仍然可以工作。如果传递了无效标志,我希望程序抛出错误并退出。我该怎么做呢?
yarnpkg - 错误的解决方案是什么:找不到模块'yargs'
执行了 ff 命令但仍然出现错误
使用管理员权限从 powershell 运行此命令: npm install --global --production windows-build-tools
cmd: npm i yargs --save yarn add yargs
javascript - 如何使用 Jest (Javascript/Typescript) 测试 yargs 应用程序
我已经在这里问了关于 Jest 存储库的问题。并且还在这里推送了一个示例应用程序来重现该行为。但为了完整起见,这里是完整的故事:
本质上是这样的(./parsers.ts
):
在cmds
文件夹中,有一个remote.ts
:
然后是add.ts
:
现在我还有两个文件:
当我运行它时,它失败了,这是正确的。因为remote add
command 需要两个参数。如果我通过正确的输入,它会给出正确的输出。意味着一切正常。
Jest 配置也是:
但是当我运行上面的测试时,它完全没有失败,就好像解析器没有配置一样。(有趣的是,断言失败了,因为foo
它没有被提取为一个属性argv
,再次显示解析器没有获取cmds
文件夹内的配置。)
不确定这是错误还是功能;在测试 yargs 解析器时,解析器配置出现问题,因此命令 目录中的任何内容都不会加载到解析器中。
如何使用 Jest 测试我的解析器?谢谢。
node.js - yargs.command 不起作用(错误消息:yargs.command 不是函数)
我正在尝试创建 yargs 命令,当我运行应用程序时出现错误。
当我运行以下命令时:
在我的 node.js 代码上:
错误:
- 亚格斯版本:1.1.0
- 节点版本:v14.16.0
- vs 代码版本
- 1.55.2(用户设置)操作系统:Window 10
node.js - Yargs:在严格模式下抛出的错误仍然未被捕获
我正在使用 Yargs 构建一个交互式 CLI,它从标准输入获取命令并在发生错误时继续执行。从官方文档中,我发现yargs.parse可以提供我需要的功能。然而,尽管进程确实会继续出错,但它会不受控制地打印错误调用堆栈;此外,即使用户稍后给出了正确的命令,仍然会打印之前的所有错误调用堆栈,这肯定会混淆和误导用户。根据格式,我想这是抛出未捕获错误时的自动行为,所以我的问题是:我应该在哪里以及如何捕获这些错误?显然中提供的回调函数yargs.parse不是引发错误的范围。
这是一个演示片段
正如你所看到的,我已经尝试将整个语句和命令处理程序放在一个 try-catch 块中,但是,错误仍然没有被捕获。
node.js - 为第三方cli包编写单元测试用例
我有一个使用 yargs 构建的基本 CLI 程序。我能够涵盖应用程序中导出函数的测试用例。
正如您在下面看到的,测试覆盖不是从哪一行完成的12-18
。我们如何为第三方包编写单元测试覆盖率yargs
?
index.js
index.test.js
测试覆盖率
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 一起使用