1
我在Gruntfile一個jshint任務類似於此任務選項:咕嚕設置使用模板和lodash省略
jshint: {
options: {
curly: true,
...
jquery: true,
globals: {
console: true,
Foo: true,
Bar: true
}
},
dev : ['Gruntfile.js', '<%= meta.jsDevFiles %>'],
build : {
options: {
globals: {Foo: true, Bar: true}
},
src: ['Gruntfile.js', '<%= meta.jsDevFiles %>']
}
}
將會有全局的無限量,我覺得開發期間有可用的控制檯方便但不希望它在構建過程中可用。我可以將所有全局變量添加兩次,但這會非常低效,容易出錯。所以我進口lodash,並試圖這樣:
build: {
options: {
globals: '<% _.omit(jshint.options.globals, \'console\') %>'
},
...
}
這應該,理論上,只是從選項中刪除控制檯的鍵,但它不適合我。經過一些試驗和錯誤,我發現這將工作:
build : {
options: {
globals: "<% jshint.build.options.globals = _.omit(jshint.options.globals, 'console'); %>"
},
...
}
有關這似乎是錯誤的,即使它工作。有沒有更好的方式去做我想做的事情?我工作的另一個版本是將globals選項存儲爲一個變量,然後在開發和構建任務中使用它,但是將選項從任務中分離出來,並且爲了更好地使用Grunt和模板,我很好奇如何讓它工作。
module.exports = function(grunt) {
var _ = require('lodash');
var jshintGlobs = {
console: true,
Foo: true,
Bar: true
}
jshint: {
options: {
...
globals: jshintGlobs
}
build: {
options: {
globals: _.omit(jshintGlobs, 'console');
}
}
}
}