我有一个我已注册的grunt构建任务,其中包含一些任务(干净,连续等)。
var target = grunt.option('target') || 'local';
grunt.registerTask('build', ['clean:' + target, 'copy:' + target]);
// execute the build task
grunt build --target=dev
某些任务具有彼此不同的本地/ dev / prod目标,而其他任务可能只是使prod目标不同。
clean: {
local: { ... },
dev: this.local, // same as local
prod: { /* different from local */ }
},
concat: {
local: { ... },
dev: { /* different from local */ },
prod: { /* different from local */ }
}
引用this.local
目标的clean.dev
会引发错误
验证属性clean.dev存在于config ... ERROR
中
clean
是一个对象文字,因此我应该只能引用this.local
。不知道为什么会失败。
我是以错误的方式解决这个问题吗?
答案 0 :(得分:0)
好的,所以这对我来说绝对是一个很好的时刻。
在创建对象文字时,this
没有任何价值。如果dev是一个函数并且函数中引用了this
那么一切都会好的。 JavaScript 101正确。
为了给this
一个值,我刚刚为表示clean
clean: new (function() {
this.local = { ... },
this.dev = this.local, // same as local
this.prod = { /* different from local */ }
})()
现在它按预期工作。