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

javascript - 如何在执行期间使用 rxjs 向 Inquirer JS 动态添加问题?

我想向用户提问,而不是立即排好所有问题。

文档中提到了 rxjs,但我觉得文档中关于如何在执行提示时正确添加问题方面存在差距,或者至少它对我来说不太适用。

https://www.npmjs.com/package/inquirer#reactive-interface

在内部,Inquirer 使用 JS 响应式扩展来处理事件和异步流。

这意味着您可以利用此功能来提供更高级的流程。例如,您可以动态添加要问的问题:

并且使用返回值过程属性,您可以访问更细粒度的回调:

0 投票
1 回答
49 浏览

javascript - 从使用 Node Inquirer 中的复选框创建的数组中删除逗号

我有以下询问者提示,据我所知,它返回一个字符串数组:

然后我想按如下方式打印答案:

希望得到类似的东西:

您选择了以下选项: • option1 • option2 • option3

相反,我得到的是这样的:

• 选项 1 ,• 选项 2 ,• 选项 3

任何人都知道如何删除那些烦人的逗号?

0 投票
0 回答
556 浏览

javascript - 如何使 inqurerjs 与 async/await 一起工作

我有一个函数,它使用查询器提出一系列问题,然后inquirer.prompt(q).then()用答案调用函数中的函数。这工作得很好,但我正在尝试对我的应用程序进行一些重构,我希望能够让我的函数返回要在其他地方调用的答案集。但是,我拥有的代码似乎什么也没返回。我以为我正确地遵循了这些例子,但显然不是。有人可以解释一下这个问题吗?

这是功能:

我也尝试用长篇的方式写出来,看看是否有帮助,但无济于事:

如果我console.log answers没有返回,那么我可以看到输出,但是如果我将函数导入另一个文件并且console.log我什么也得不到:

例如console.log(questionTime())

0 投票
1 回答
2227 浏览

javascript - Node js - 为 CLI 应用程序实现 Inquirer.js 的问题?

我在让inquirer.js 在我正在处理的简单CLI 中顺利工作时遇到问题。首先,提示问题重复了几次,这需要修复。其次,我将代码编写为模块中的类,但不需要在此处包含代码使其成为模块,因此仅包含下面的类代码。在下面的代码中,我试图从inquirer.js 提示符中访问用户选择的选项,但我无法将用户选择的答案记录到控制台。我正在尝试在这里编写一个类,这样我就可以在需要inquirer.js 功能的任何时候实例化一个对象,并且只需更改某些属性来自定义提示。我还使用了几个额外的模块 Colors.js 和 Shell.js 我非常感谢一些知识渊博的程序员提供的任何帮助,感谢您的帮助:

到目前为止,这是我的代码:

这是颜色模块代码:

0 投票
1 回答
1074 浏览

node.js - 如何使用 Promises 在循环中调用inquirer.js 菜单?

我编写了一个简单的 Node.js 程序,它带有一个由inquirer.js提供便利的漂亮菜单系统。但是,在菜单中选择一个选项并完成一些操作后,程序退出。我需要再次显示菜单,直到我在菜单中选择 Exit [last] 选项。我想使用 Promise而不是async/await 来做到这一点。

我尝试使用一个函数来显示菜单并在一个永久循环(例如while (true) { ... })中调用该函数,但这使得程序无法使用。我将其更改为 for 循环只是为了观察问题。下面是简单的程序和结果输出。

PROGRAM

OUTPUT

如何在第一次调用生成菜单后阻塞,等待选择一个选项并完成相应的操作,然后循环回到显示菜单的下一个迭代?

0 投票
2 回答
708 浏览

javascript - `program.parse(process.argv)` 在 command.js 中做了什么?

我想用户commander.jsinquirer.js提出问题并收集答案以创建一个User实例:

当我使用 运行它时node index.js add,问题数组会提出一个问题并退出:

但是,当我 deleteprogram.parse(process.argv)时,一切正常,它可以将新User实例返回给我。

我检查了文件:https ://github.com/tj/commander.js/ 仍然不知道发生了什么。有人知道更多吗?

我刚才发现的是,如果我program.parse(process.argv)在实例的第一次设置中这样开头program

它也有效。但我仍然不知道为什么顺序很重要。

0 投票
2 回答
1393 浏览

javascript - 如何清除 Inquirer.js 中的错误输入

考虑到上面的代码,我注意到在这样的旧视频,如果你包含 validate 并且它失败了,输入将被清除。然而,在我的情况下,我得到一个不会自动清除的 NaN。假设我启动应用程序并输入“abcdefg”:

如果我输入任何内容,它只会被添加到 NaN 的末尾。Backspace 和 delete 不会删除 NaN,但是如果我多次按下向上箭头按钮直到不再显示以前的输入,它将被删除。难道我做错了什么?

0 投票
1 回答
1296 浏览

javascript - Inquirer.prompt 退出而没有答案

我想知道是否有人可以帮助我解释为什么下面的代码会导致命令行退出而不等待用户的回答。

目标是一个简单的命令行应用程序,它要求用户选择一个选项 - 然后根据他们选择的内容执行一个功能。但是正在发生的是应用程序正在运行,显示选项然后立即退出......

0 投票
1 回答
1186 浏览

javascript - 将 SQL 查询传递到 Inquirer Prompt

我正在尝试提取 SQL 查询结果并在查询器提示中填充选择。当控制台记录“选择”时,它会显示来自被调用的 SQL 查询的对象数组,但是当调用inquirer.prompt 并使用查询响应填充选择时,呈现给用户的选择显示为“未定义”。不完全确定发生了什么,因为我有一个几乎相同的功能可以完美运行。

0 投票
0 回答
243 浏览

node.js - 如何使用 VS Code 调试节点 CLI(带询问者的交互式提示)?

我有一个使用and构建的Node CLI。我目前正在尝试使用 VS Code 调试应用程序。CommanderInquirer

我目前的launch.json配置:

这是为了停止我的应用程序并允许我通过集成终端输入输入,但是,它似乎并没有真正附加子进程(?)或其他任何东西,因为查看我的调试器,细节都是空白的在该过程停止时:

调试器暂停

此外,虽然我在函数中有几个断点newNote(这是我通过argsin 调用的launch.json),但它们不会被绊倒。

我发现这个VS Code 资源对调试 Node 应用程序非常有帮助,但似乎无法理解我所缺少的。

Inquirer也有这样的说法:

调试独立的可执行子命令

可执行子命令作为单独的子进程启动。

如果您使用节点检查器来调试使用 node --inspect 等的可执行子命令,则检查器端口会为生成的子命令增加 1。

如果您使用 VSCode 调试可执行子命令,则需要在您的 launch.json 配置中设置 "autoAttachChildProcesses": true 标志。

问题是否需要进行设置/更改以允许我在应用程序暂停以在 Inquirer 中提问时实际查看应用程序的状态?