yeoman子生成器如何访问在主生成器上定义的变量
How can a yeoman sub-generator access variables defined on the main generator?
我正在做一个子生成器,我想将主生成器上定义的变量传递给这个子生成器:类似的东西:
writing: function() {
console.log(this.appversion);
var email = this.email; // Variable defined on the main controller.
this.fs.copy(
this.templatePath('somefile.js'),
this.destinationPath('somefile.js')
);
我试着在主生成器上做一些类似下面代码的事情:
this.composeWith('jstack1:controller', {options: {name: 'some-name'}});
以及子生成器上的以下代码
this.option('name', {/* settings */});
但我不确定这是否是一个好方法,此外,我总是收到以下错误消息:
错误:未提供所需的参数[1mname[22m!为null。(C:''Users''Alexandre_''generator-jstack1''generator-generator-jstack1''node_modules''yeoman-generator''lib''base.js:359:33)在Array.forEach(本地)在Base.checkRequiredArgs(C:''Users''Alexandre_''generator-jstack1''generator-generator-jstack1''node_modules''yeoman-generator''lib''Base.js:355:19)at参数(C:''Users''Alexandre_''generator-jstack1''generator-generator-jstack1''node_modules''yeoman-generator''lib''base.js:321:8)位于module.exports.yeoman.generators.Base.extend.initializing(C:''Users''Alexandre_''generator-jstack1''generator-generator-jstack1''generators''controller''index.js:6:10)位于C:''Users''Alexandre''generator-jstack1''generator-generator-jstack1''node_modules''yeoman-generator''lib''base.js:421:16在processImmediate[as_immediateCallback](timers.js:383:17)
但我不确定这是否是一个好的方法来做这个
是的,这是正确的方法。生成器之间唯一的通信方式是通过选项和参数。(也可以通过缓存/配置和文件系统进行一些通信,但这些不是频繁的通道。)
关于这个错误,我猜你是在扩展generators.NamedBase
而不是generators.Base
。
我已经找到了一种方法,而且非常简单。
首先在主生成器中,我在存储中添加上下文变量:
var templateContext = {
appname: this.appname,
appdescription: this.appdescription,
appversion: this.appversion,
applicense: this.applicense,
appautor: this.appautor,
appemail: this.appemail
};
this.config.set('templateContext',templateContext);
然后在子生成器中,我得到templateContext with:
var templateContext = this.config.get('templateContext');
- Socket.IO未定义变量
- 像createComment这样的各种自定义变量名在内联javascript中被覆盖,但在外部js中没有.为什么?
- 已定义变量出现未定义错误
- 使用eval()定义变量显示未定义的错误
- 在javascript变量中添加php定义变量
- 如何在来自另一个文件的控制器中定义变量
- 如何在不定义变量的情况下使用 document.createElement()
- 清除 Javascript 中窗口对象中的自定义变量
- 更改 Javascript 对象中所有未定义变量的值
- 定义变量是否比在 JS 中覆盖变量使用更多的资源
- 是否有类似Object.defineProperty的方法来定义变量
- coffeescript,类未定义变量
- 使用下划线未定义变量时发生抛出/捕获错误
- 如何为ajax定义变量,以及addeventlistener/pushstate函数?Javascript,而不是jQu
- 网络浏览器正在成为“;严格的“;用于Javascript中未定义变量的操作
- 使用window.location时未定义变量
- 在条件(if)结构的条件语句中是否有定义变量的有效方法
- 传递给数据的未定义变量
- bizzare未定义变量
- JavaScript 中全局范围内存在未定义变量的原因是什么?