首页 > 解决方案 > 在 Enquirer CLI Prompt 中填写问题和答案字段

问题描述

我正在使用enquirer包提示用户在我的 Nodejs CLI 应用程序中输入。

目前,我正在使用内置的表单提示进行输入,如下所示 -

const prompt = new Form({
  name: 'user',
  message: 'Please provide the following information:',
  choices: [
    { name: 'First Name', message: 'First Name'},
    { name: 'Last Name', message: 'Last Name'},
    { name: 'Date of Birth', message: 'Date of Birth'}
  ]
});

这适用于具有预定义字段的表单,即。-

Please provide the following information:    

Field1: _______ 

Field2: _______ 

Field3: _______ 

但我现在想向用户展示一个自定义字段,能够编辑该字段的问题和答案,即。-

________: _______

理想情况下,此自定义字段将与其他预定义字段一起显示,如下所示 -

Field1: _______ 

Field2: _______ 

Field3: _______ 

______: _______

用户可以这样填写 -

Field1: Answer1

Field2: Answer2 

Field3: Answer3 

NewField: Answer4

这将返回一个类似于 -

{
  "Field1": "Answer1",
  "Field2": "Answer2",
  "Field3": "Answer3",
  "NewField": "Answer4",
}

Enquirer 确实支持自定义提示,但我正在努力弄清楚我可能会如何实施这样的事情。

或者,如果可以使用不同的包更轻松地实现这种类型的提示,我愿意使用另一个模块(即询问者)。

任何帮助或指点将不胜感激,谢谢。

标签: javascriptnode.jstypescriptinputcommand-line-interface

解决方案


看看Editable Prompt(它扩展了Form Prompt以添加您正在寻找的功能)。您按下Ctrl+n以添加新项目。

请参阅此处的示例...最简单的一个是添加选择

与您的用例的主要区别在于,当点击 时Ctrl+n,会提示用户输入名称,然后可以输入值。

您还可以使用传递给提示构造函数的headerorfooter选项向您的用户提供附加说明。


推荐阅读