在我的自定义 Yeoman 生成器中,我只想在安装完所有 Bower 组件后进行一些文件复制。目前,在index.js
回调中看起来像这样:
var SiteGenerator = module.exports = function SiteGenerator(args, options, config) {
yeoman.generators.Base.apply(this, arguments);
this.on('end', function () {
this.installDependencies({
skipInstall: options['skip-install'],
callback: function () {
this.copy('assets/bower_components/wordpress/index.php', 'app/index.php');
}.bind(this)
});
});
this.pkg = JSON.parse(this.readFileAsString(path.join(__dirname, '../package.json')));
};
但是,显然this
是在引用原始生成器,而不是刚刚生成的站点。SiteGenerator.prototype.app = function app()
因此,在installDependencies
我尝试过的回调中,完成目录创建和复制的生成器函数是:
SiteGenerator.prototype.app.copy()
但这显然会产生错误。
安装 Bower 组件后,如何访问新生成的目录?