【发布时间】:2015-05-29 13:40:56
【问题描述】:
我正在尝试使用composeWith 在同一个生成器包中调用子生成器。然而由于某种原因,只调用了被调用生成器的构造函数。
我的生成器包generator-test 如下所示:
package.json
generators
-- app
-- index.js
-- base
-- index.js
我在app 中的主生成器如下所示:
'use strict';
var yeoman = require('yeoman-generator');
var yosay = require('yosay');
module.exports = yeoman.generators.Base.extend({
constructor: function () {
console.log('constructing app');
yeoman.generators.Base.apply(this, arguments);
},
initializing: function() {
console.log('initializing app');
var done = this.async();
this.composeWith('test:base',{ options: { } })
.on('end', function() {
done();
});
}
});
我在base中的子生成器:
'use strict';
var yeoman = require('yeoman-generator');
module.exports = yeoman.generators.Base.extend({
constructor: function () {
console.log('constructed base');
yeoman.generators.Base.apply(this, arguments);
},
initializing: function() {
console.log('initialized base');
}
});
这应该会生成 4 个控制台输出,但我只得到前三个:
constructing app
initializing app
constructed base
initialized base 从不显示。为什么?我是不是误解了composeWith的概念?
或者有其他方法可以解决这个问题吗?
【问题讨论】:
标签: javascript yeoman yeoman-generator