YEOMAN 运行 一个函数中的多个子生成器

YEOMAN run multiple sub generators in one function

我有一个基于 angular 的生成器,带有三个用于控制器指令和服务的子生成器。我想 运行 一个函数,它同时采用 NAME variable/input 和 运行 所有这三个,而不是必须 运行 每个单独。

Yeoman 提供 composeWith() (docs),您可以使用它来调用其他(子)生成器。

'use strict';

var generators = require('yeoman-generator');

module.exports = generators.Base.extend({
  constructor: function () {
    generators.Base.apply(this, arguments);
    this.argument('theName', {
      type: String,
      required: true
    });
  },

  initializing: function() {
    this.composeWith('my-generator:mysubgen1', { args: [this.theName] });
    this.composeWith('my-generator:mysubgen2', { args: [this.theName] });
  }
});

在上面的示例中,我假设您的生成器名为 my-generator 并且有两个子生成器(mysubgen1mysubgen2)。

上面的代码将进入第三个子生成器,例如doall。如果你调用 $ yo my-generator:doall foobar 它现在会 运行 两个组合的子生成器,传递 foobar 作为第一个参数。