我的Gruntfile中有一些模板变量用于我的dist文件夹。我还想在if else语句中使用它们来调整某些任务的配置。
这是我的Gruntfile的简短版本:
module.exports = function(grunt) {
grunt.initConfig({
// Variables
path: {
develop: 'dev/',
output: 'output/'
},
// Clean empty task
cleanempty: {
output: {
src: '<%= path.output %>**/*'
}
},
// Sync
sync: {
output: (function(){
console.log(grunt.config('path.output')); // Returns undefined
if(grunt.config('path.output') === 'output/') {
return {
// Config A
}
} else {
return {
// Config B
}
}
}())
}
不幸的是我无法让它发挥作用。 grunt.config('path.output')返回undefined。 如何阅读Grunt模板变量?一个更好的解决方案的提示,我也想听。
答案 0 :(得分:1)
变量需要在grunt.initConfig之外声明。然后你需要在grunt.initConfig
中引用它找到我的解决方案: http://chrisawren.com/posts/Advanced-Grunt-tooling
工作样本:
module.exports = function(grunt) {
// Variables
var path = {
develop: 'dev/',
output: 'output/'
};
grunt.initConfig({
path: path, // <-- Important part, do not forget
// Clean empty task
cleanempty: {
output: {
src: '<%= path.output %>**/*'
}
},
// Sync
sync: {
output: (function(){
console.log(path.output); // Returns output/
if(path.output) === 'output/') {
return {
// Config A
}
} else {
return {
// Config B
}
}
}())
}
//...the rest of init config
});
}
答案 1 :(得分:0)
试
grunt.config.get('path.output')