如何根据上一个问题的答案有条件地提出一组提示?

时间:2019-05-29 07:26:46

标签: node.js scaffolding yeoman-generator inquirerjs

我需要创建一个yeoman生成器,该生成器遵循这样的层级结构-

yeoman生成器询问-用户是要创建一个新项目还是要在一个现有项目上工作,如果用户选择一个新项目,它会询问一组提示(即propmts1),是用户选择处理一个现有项目吗?询问他是否要从Github或npm导入项目,将根据此答案确定以下提示。

我找到了解决方法,但是效率不高。我现在使用的逻辑是我有一个对象数组,每个对象都是一个问题,但是问题是我必须检查每个提示上的条件,以确定是否应该问这个问题。

const prompts = [
      {
        type: "list",
        name: "q1",
        message: "What do you want to do today?",
        choices: [
          "A",
          "B"
        ],
        default: 0
      },
      {
        type: "input",
        name: "q2",
        message:
          "m2",
        when: function(props) {
          return props.q1 === prompts[0]["choices"][0];
        }
      },
      {
        type: "input",
        name: "q3",
        message:
          'm3',
        when: function(props) {
          return props.q2;
        }
      },
      {
        type: "list",
        name: "q4",
        message:
          "m4",
        choices: ["c", "d"],
        default: 0,
        when: function(props) {
          return !props.q3;
        }
      }
    ];

0 个答案:

没有答案