问题标签 [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 回答
135 浏览

javascript - 如何使用 yargs 获取我的参数

我用 yarn 启动我的 koa 应用程序:

yarn start --some=123

的内容package.json是:

我的文件结构:</p>

我的config.js文件:

将打印:

{ _: [], help: false, version: false, '$0': 'src/main' }

我怎样才能得到我想要的参数?我应该更改package.json文件中的脚本吗?

0 投票
0 回答
27 浏览

node.js - 如何指定一个选项既可以是数字也可以是字符串?

我正在尝试设置一个既是type: "number"又是 的选项type: "string"

的文档.option()指定type选项选项对象的属性应该是一个字符串,其中两个选项是数字和字符串。但是,我希望它同时接受.

我怎样才能做到这一点?

0 投票
2 回答
1287 浏览

javascript - Yargs.argv 总是 [object Object]

Ubuntu 16.04。我正在 Udemy 上开设 node.js 课程。我使用讲师使用的确切版本进行了尝试,然后升级到最新版本(11.0.0)。两者都给出了相同的输出。

我在控制台上运行它

控制台输出是

据我了解,它应该有我的参数。

0 投票
1 回答
1351 浏览

javascript - 在 Gulp 中使用 Yargs

我正在使用 yargs 在 gulp 命令中传递参数。我在检查参数的有效性以及如果标志存在或不存在会发生什么时遇到问题。

更具体地说,这是我的gulpfile.js

如果我gulp config -c something,一切都按预期工作。

我想要的是:如果命令中没有提供,让 CLI 请求配置参数。

有没有人有这方面的经验?

0 投票
1 回答
893 浏览

javascript - Yargs .check() 用于特定条件

我目前有 yargs 在一个可以在没有参数的情况下运行的应用程序中工作,或者以下两者之一或两者:

  • 一个“-o”选项,只有一个参数
  • 不带参数的“-f”选项

这些工作,但没有什么能阻止用户输入被忽略的额外选项或参数,例如:

  • 应用你好
  • app -f 你好
  • app -o 你好你好

我宁愿失败并提醒他们使用。我认为 .check() 函数是正确的方法,但我在网上找不到很多例子。如果这是正确的前进方向,任何人都可以建议一个 check() 函数吗?

0 投票
0 回答
299 浏览

node.js - yargs(节点模块):命令模块文件...解析命令,但不自动执行命令的exports.handler代码

我将 yargs 与命令模块一起使用,即每个命令的单独文件,每个命令文件为自己的命令定义exports.command, 。exports.descexports.handler

对于我 60% 的命令,默认情况下它的工作方式很好。但是另外 40% 我想首先使用异步的 TypeORM 连接到数据库,然后仅在建立连接后,执行exports.handler包装在 .then() 中,这样它就不会在数据库连接之前执行.

问题是,在我的全局入口文件中,一旦定义了所有全局 yargs 选项,并且我执行 .argv for yargs 来解析命令(确定它是 db 还是非 db 命令),它也会exports.handler立即执行,所以我没有机会先连接到数据库,然后使用 .then 来包装exports.handler命令代码(对于需要它的 40% 的命令)。

我想避免只为 db 连接添加异步代码到这 40% 的命令文件中的每一个。并且还要避免为所有 100% 的命令连接到数据库,因为其中 60% 的命令不需要它。

我正要进行重大更改,不再使用 yargs 的命令模块……但必须有更简单的方法来做到这一点?

有没有办法告诉 yargs 我想解析命令但还没有执行 exports.handler

如果我能弄清楚这一点,那么我可以简单地将需要包装在 .then() 中的命令和不需要的命令分开。

0 投票
0 回答
31 浏览

javascript - 如何检测脚本是直接调用还是通过带有 yargs 的节点调用?

我正在使用yargs在 NodeJS 中编写 CLI 实用程序。

Yargs 有一个.usage()函数,我使用如下:

当我运行时node cli.js --help,它按预期显示以下内容:

显然 yargs 正在将$0占位符扩展到cli.js,这很棒。这就是我手动包含node.usage()调用中的原因。

但是这样,当我最终将我的实用程序作为 CLI 工具发布时,如果有人使用 安装它npm install -g,恐怕使用显示会

虽然显然我希望它是

如何进行此条件检查,以便仅node在真正以这种方式调用时(而不是直接调用)打印使用情况?

0 投票
6 回答
3481 浏览

javascript - Yargs 帮助不显示所有帮助选项

我正在使用yargs为传递给脚本的参数添加命令行选项。当我发出帮助命令以及脚本名称时,它不会显示添加参数的帮助。

0 投票
1 回答
1247 浏览

node.js - Yargs:在命令处理程序中调用现有命令

我正在尝试restart使用 yargs 实现命令。我已经实现了startandstop命令,我现在要做的就是在命令中调用这些现有命令restart

不幸的是,它不能通过简单地使用yargs.parse('stop');

我在 Github 问题或 API 文档中也找不到任何相关内容。我错过了什么?

谢谢!

0 投票
1 回答
2196 浏览

node.js - 从 npm 传递键值参数

所以我正在努力将命令行选项参数从 npm 传递到节点脚本。我可以自己传递选项,但不能作为键值对。

对于我的 package.json 我有:

(我的理解是,对于 npm,您需要包含和额外的“--”来传递参数)并且在我的 app.js 中我有:

当我跑

我得到:

['FOO','酒吧']

太好了,这很有效,但如果我尝试

我得到:

['FOO','99RedBallons']

$ npm run test FOO --BAR=99RedBallons 给了我:

['FO']

世界卫生大会?所以,我的问题真的是,使用“run npm <>”并且我假设 yargs(因为我相信这是最流行的包),我怎么能用 ["FOO", "Bar" 的 arg._ 到达:" 99个红气球”]。

谢谢!