问题标签 [inquirerjs]

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 回答
360 浏览

node.js - Node.js Vorpal CLI - 将子命令作为一个命令包含在内

假设我们有这个:

如何为 sumanOptions 传递命令字符串(“子命令”)?像这样的东西:

vorpal> find "a b c" myfolder

这样在动作回调的 args 中,看起来像:

这可能吗?还是这个问题是我在问题跟踪器中看到的“子命令”问题?我希望能够做到这一点,到目前为止,还无法弄清楚如何做到这一点。

0 投票
1 回答
50 浏览

javascript - 在 InquirerJS 中传递选择的答案?

我如何能够从上一个问题中得到答案并传递到下一个问题以供inquirerJS 选择?我知道它是异步的,但我不确定如何在这里创建承诺。任何进一步的见解和帮助都会很棒。

例子:

0 投票
1 回答
119 浏览

javascript - 在 InquirerJS 中重复一组问题

有没有办法重新设置问题或让某个答案将问题引导到另一个先前的问题?

0 投票
0 回答
667 浏览

javascript - 使用查询器复选框遇到未处理的承诺错误

因此,我正在编写一个节点 CLI 应用程序,该应用程序包含一个纸牌游戏,用户在该游戏中抽取 5 张牌,然后可以选择摆脱他手中的最多 4 张牌。

我正在用 Javascript 编写它,并且正在使用以下 npm 模块

  • 亚格斯
  • 询问者

我还为以下 API http://deckofcardsapi.com/创建了一个包装器

使用查询器,用户可以从他当前选择最多 4 张卡来处理,但是我遇到了一些问题。我并不完全了解如何将用户当前的手牌传递给查询器提示中的选择数组。我已经尝试了一些事情,但我不断收到以下错误:

(节点:13764)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝 id:2):TypeError:无法读取未定义的属性“then”
(节点:13764)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。

这是我的代码

cli.js
用于解析命令行参数以通过调用初始化应用程序node cli.js play

app.js
包含用于运行应用程序的方法

这是我为 Deck of Cards API index.js创建的包装器

当我运行它时,我得到以下输出

我承认我对 Javascript 相当陌生,并且主要来自 Java 编码,事情的流程对我来说有点抽象,但任何建议都将不胜感激

0 投票
1 回答
1715 浏览

javascript - 如何从inquirer.js 中获取价值?

我正在使用 javascript、yargs、inquirer 和 superagent 构建一个小型 CLI 应用程序。在查询器中,我要求用户输入要在我的应用程序中使用的里程选择。我想在我的应用程序的其他地方使用该值,但我似乎无法获得返回的值。下面是我最近的尝试。任何帮助获取此值返回的帮助selectRange将不胜感激。

这是我的输出图片,请注意最后一行

0 投票
1 回答
457 浏览

node.js - 如何为 yeoman 生成器提示注册inquirer.js 插件?

在创作 yeoman 生成器时,我想在我的一个提示中使用查询器的“自动完成”插件(https://github.com/mokkabonna/inquirer-autocomplete-prompt)。我似乎在文档中找不到任何内容,说明如何使用 yeoman 生成器中的查询器注册此插件。这可能吗?

0 投票
2 回答
4470 浏览

node.js - 如何为 Inquirer.js 编写单元测试?

我想知道如何为 npm 包Inquirer.js编写单元测试,这是一个使 CLI 包更容易的工具。我已经阅读了这篇文章,但我无法让它发挥作用。

这是我需要测试的代码:

...这是用 Mocha 编写的测试:

我想用process.env.TEST_LOGIN(回答第一个 Inquirer.js 问题)和process.env.TEST_PASS_OR_AUTH(回答第二个 Inquirer.js 问题)填充标准输入,以查看该函数是否创建了有效的配置文件(值 unix_logincreate由工厂对象)。

我试图了解 Inquirer.js 如何对自身进行单元测试,但我对 NodeJS 的理解还不够好。你能帮我做这个单元测试吗?

0 投票
0 回答
192 浏览

node.js - 将节点检查与查询器一起使用

我正在尝试使用 node-inspect 来调试使用查询器的应用程序。如果我运行:

我被问到我的应用程序的第一个问题。然后我使用键盘输入我的答案并按 Enter 继续。

我的问题是什么时候

  1. node-inspect app.js
  2. 在 Chrome 中打开调试 URL
  3. 在 Chrome 中点击继续以开始执行脚本
  4. 看到第一个问题出现在终端
  5. 在终端中输入我的回复并按回车

我希望这会按照第一个示例继续到下一个问题,但是,我无法让终端识别来自键盘的任何输入。

我在 Mac 上。

0 投票
1 回答
2334 浏览

javascript - 并行运行多个 Axios 请求以验证数据

我正在使用Inquirer.js与用户交互。在其中一个对话框中,用户可以指定逗号分隔的“项目”列表。以下验证函数会根据 API 检查“项目”是否可用。如果不是,则提示用户对其先前的选择进行更正。

当前代码:

虽然这一切都可以正常工作,但迭代一组包并调用axios.get()每个项目似乎非常低效。有没有办法并行运行这些并在其中一个请求失败时中断?

同样,我对项目的实际数据不感兴趣,而对它是否存在(等于true)不感兴趣(返回错误消息)。

0 投票
0 回答
1504 浏览

node.js - Inquirer.js:如果一个提示为真,则询问多个问题

我正在使用 Inquirer.js 编写帐户创建者,并且仅在用户要求此类保护时才想询问用户的电子邮件和密码。它是这样的:

如您所见,我运行了完全相同的when语句三次,因为它验证是否选择了密码保护。我想知道是否有更智能、更实用的方法来执行此操作,即在不重复when函数的情况下运行此验证。

也许嵌套三个问题就可以了,但是如何在不破坏提示流程的情况下这样做呢?