我有一个基于角度的发生器,带有三个子发生器,用于控制器指令和服务。我想运行一个带有NAME变量/输入的函数,同时运行所有这三个函数,而不必分别运行每个函数。
答案 0 :(得分:0)
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
作为第一个参数传递。