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

javascript - Yargs 中的命令函数

我只是想了解 yargs 模块中使用的命令函数以及传递给它的对象的属性。关于内部使用的处理函数。argv 是否代表传递给命令函数的对象的构建器属性?

0 投票
1 回答
183 浏览

javascript - 使用 yargs(npm 包),如果找不到命令,如何给出错误?

我有 2 个命令的 yargs?

用户输入:

yargs不要抛出错误。我应该怎么办?

0 投票
4 回答
146 浏览

typescript - 如何制作取决于先前值的打字稿定义?

例如,请参阅此代码:

在第 3 行中,如何让 IDE 了解第 2 行中的值,并为使用该库的最终用户定义的字符串提供自动完成功能?

我希望在我输入后a.我会看到“我的自定义值”作为 VSCode 的自动完成选项。

我看到它yargs是这样工作的。如果我定义了一个选项或一个位置参数,IDE 稍后会为我提供我选择的内容。

0 投票
1 回答
337 浏览

node.js - yargs 正在抛出 ExperimentalWarning

我正在编写一个 node.js CLI 程序,出于某种原因,当我只包含yargs类似

我收到警告:

我不知道为什么,每次我测试我的应用程序时看到它都很烦人。知道为什么会出现此警告以及如何摆脱它吗?

0 投票
2 回答
1088 浏览

yargs - 我在哪里可以找到 yargs npm 中的 builder 文档?

有人非常了解 npm yargs 吗?我正在将此包用于命令行参数的事情。但我找不到“builder”的解释。我在哪里可以得到这个?

0 投票
1 回答
102 浏览

node.js - 在这个 bash 脚本中,“-”是什么意思?又怎么能知道它的意思呢?

这是脚本:

我已经阅读了命令行参数中“-”(破折号)的魔力是什么?. 而且我认为它可以表示标准输入......如果 bash 程序的作者将其定义为这样。
但是,在这里(链接到 ganache-core.docker.cli.js github 文件),我找不到 ganache-core.docker.cli.js 的作者如何或在何处将破折号(“-”)定义为标准输入. 有人也可以指出这一点吗?

编辑:我正在寻找确认破折号确实意味着 cli args 的标准输入,但更希望了解,当根据上面的链接问题时,为什么它们应该被明确地解释为 stnin 它只是一个约定。

Edit2:我怀疑 CLI arg 解析库是yArgs

0 投票
1 回答
181 浏览

javascript - 在使用 Yargs 执行代码之前要求用户确认

使用 yargs 可以让 CLI 的用户指定他们想要使用参数调用哪个命令,然后 CLI 在运行代码之前回复以下消息:

您确定要使用以下设置在环境 X 上执行此代码: .... Y / N:

Y 会执行代码 N 什么也不做

更新: 刚刚发现了一个名为 yargs-interactive 的 npm 模块。我想这就是我的问题的答案。

0 投票
0 回答
185 浏览

javascript - 基于 Node.js CLI 参数设置全局变量

我在 node.js 中创建了一个 CLI。对于每个命令,用户传入命令行参数,例如环境和租户。我想设置应用程序中任何其他文件都可以访问的变量。

我正在使用 yargs,所以我的每个 CLI 命令都接受参数并调用一个函数。在调用该函数之前,我想设置一些其余 js 文件将使用的全局变量。

我意识到我可以为此使用环境变量,因为您也可以在代码中设置它们。

0 投票
0 回答
183 浏览

javascript - 使用 yargs api 的动态和类型安全的函数参数

我想和你分享一个编码挑战,希望有人也被这个挑战所吸引,并且可以提供帮助,因为它需要一些“高级”的 Typescript 技能:) 首先是一些基本的 Javascript,以明确我想要做什么:

挑战是实现该createTask功能,以便...

  1. 您可以通过函数的callback参数提供任务的实际实现createTask
  2. 所有自定义参数都应该可以使用yargs包中的 awesome api 进行配置
  3. 如果您使用错误的参数执行任务,打字稿编译器会警告您

修订版 1 - 没有类型检查

现在让我们忽略类型检查问题。
所以在普通的javascript中应该是这样的:

修订版 2 - 基本类型检查

现在让我们用打字稿写这个:

现在要按预期进行这项工作,我想我需要使用一些更复杂的打字稿魔法。

修订版 3 - 几乎完美,但具有冗余类型信息

我想我已经很接近了,因为当我明确地为customTask变量提供类型时它可以工作:

我只是不满意必须foo在 2 个地方编写类型:变量声明中let customTask: CustomTask<{**foo:boolean**}, void>的第一个和 yargs api 调用中的第二个.option( 'foo', { **type: 'boolean'** } )

我相信有一些高级打字稿功能允许编译器customTask从 yargs 的 api 调用中自动推断类型。我希望有人能帮帮忙 :)

谢谢!

0 投票
1 回答
868 浏览

node.js - 我得到 yargs.methodName is not a function with all yargs methods using ES6 imports in NodeJS without Babel

所以,我正在做一个 nodejs 教程,但是该教程没有更新到 ES6,我只是想在进行过程中更新代码。我使用 require('yargs') 让程序运行得很好,但不断得到 yargs.command、yargs.argv 等不是函数。据我了解,nodejs 现在支持导入/导出语句,yargs 也是如此。我已将我的应用程序设置为“类型:模块”并保存为 .mjs 文件。下面列出的是带有终端输出的工作与非工作(ES6)。如果有人能发现我的错误,请告诉我...

工作代码...

终端...

ES6

终端....