You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Yeoman Generator中注册Inquirer.js的autocomplete插件?

可以实现!在Yeoman Generator中注册Inquirer插件的方法

当然可以在Yeoman Generator里使用Inquirer的第三方prompt插件,我之前开发Generator时就集成过autocomplete插件,下面是具体的实现步骤:

1. 安装autocomplete插件

首先在你的Generator项目里安装依赖:

npm install inquirer-autocomplete-prompt --save-dev
# 或者用yarn
yarn add inquirer-autocomplete-prompt --dev

2. 在Generator中注册插件

Yeoman的Generator实例内置了Inquirer对象,你只需要在Generator的代码里(比如app/index.js)注册这个prompt类型即可。通常我会在constructor或者initializing阶段完成注册:

const Generator = require('yeoman-generator');
const autocompletePrompt = require('inquirer-autocomplete-prompt');

module.exports = class extends Generator {
  constructor(args, opts) {
    super(args, opts);
    // 注册autocomplete prompt
    this.inquirer.registerPrompt('autocomplete', autocompletePrompt);
  }

  async prompting() {
    // 这里就可以用autocomplete类型的提问了
    const answers = await this.prompt([
      {
        type: 'autocomplete',
        name: 'framework',
        message: '选择你要使用的前端框架:',
        source: async (answersSoFar, input) => {
          // input是用户输入的搜索关键词,返回匹配的选项数组
          const frameworks = ['React', 'Vue', 'Angular', 'Svelte', 'SolidJS'];
          if (!input) return frameworks;
          return frameworks.filter(framework => 
            framework.toLowerCase().includes(input.toLowerCase())
          );
        }
      }
    ]);

    // 使用用户选择的结果
    this.log(`你选择了:${answers.framework}`);
  }
};

3. 关键注意事项

  • 版本兼容性:要确保inquirer-autocomplete-prompt的版本和Yeoman依赖的Inquirer版本匹配。你可以查看Yeoman的package.json(在node_modules/yeoman-generator/package.json里)找到Inquirer的版本范围,再选择对应的插件版本,避免出现兼容问题。
  • source函数的要求:autocomplete的source函数需要返回一个Promise或者直接返回数组,用来根据用户输入动态生成候选选项,这也是autocomplete插件的核心功能。

通用插件注册方法

其实不止autocomplete,任何Inquirer第三方prompt插件都可以用同样的方式注册:

  1. 安装对应插件
  2. 在Generator中通过this.inquirer.registerPrompt('prompt-type', require('plugin-package'))注册
  3. 在prompting()里使用对应的type字段

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:25:48