AdonisJS v7 已完成功能开发,正在进行最终验证。 了解更多

Prompts

Prompts

Prompts 是你可以用来接受用户输入的交互式终端小部件。Ace prompts 由 @poppinss/prompts 包提供支持,该包支持以下 prompt 类型。

  • input
  • list
  • password
  • confirm
  • toggle
  • select
  • multi-select
  • autocomplete

Ace prompts 的构建考虑了测试。在编写测试时,你可以捕获 prompts 并以编程方式响应它们。

另请参阅:测试 ace 命令

显示 prompt

你可以使用所有 Ace 命令上可用的 this.prompt 属性来显示 prompts。

import { BaseCommand } from '@adonisjs/core/ace'
export default class GreetCommand extends BaseCommand {
async run() {
const modelName = await this.prompt.ask('Enter the model name')
console.log(modelName)
}
}

Prompt 选项

以下是 prompts 接受的选项列表。你可以将此表作为唯一的参考来源。

选项 接受者 描述

default (String)

所有 prompts

当未输入任何值时使用的默认值。在 select、multiselect 和 autocomplete prompts 的情况下,该值必须是 choices 数组索引。

name (String)

所有 prompts

prompt 的唯一名称

hint (String)

所有 prompts

显示在 prompt 旁边的提示文本

result (Function)

所有 prompts

转换 prompt 返回值。result 方法的输入值取决于 prompt。例如,multiselect prompt 值将是选定选项的数组。

{
result(value) {
return value.toUpperCase()
}
}

format (Function)

所有 prompts

在用户输入时实时格式化输入值。格式化仅应用于 CLI 输出,而不应用于返回值。

{
format(value) {
return value.toUpperCase()
}
}

validate (Function)

所有 prompts

验证用户输入。从该方法返回 true 将通过验证。返回 false 或错误消息字符串将被视为失败。

{
validate(value) {
return value.length > 6
? true
: 'Model name must be 6 characters long'
}
}

limit (Number)

autocomplete

限制显示的选项数量。你必须滚动才能看到其余的选项。