【发布时间】:2016-02-08 13:34:29
【问题描述】:
我有一个基于角度的生成器,其中包含三个用于控制器指令和服务的子生成器。我想运行一个函数,它接受 NAME 变量/输入并同时运行所有这三个函数,而不必分别运行每个函数。
【问题讨论】:
我有一个基于角度的生成器,其中包含三个用于控制器指令和服务的子生成器。我想运行一个函数,它接受 NAME 变量/输入并同时运行所有这三个函数,而不必分别运行每个函数。
【问题讨论】:
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,并且有两个子生成器(mysubgen1 和mysubgen2)。
上面的代码将进入第三个子生成器,例如doall。如果您调用$ yo my-generator:doall foobar,它现在将运行两个组合子生成器,并将foobar 作为第一个参数传递。
【讨论】: