我試圖實現Grunt來自動完成CSS合併和縮小的過程。我的文件夾結構:Grunt - 在循環中運行任務(saas,cssmin)
文件夾1
- 青菜
- CSS
文件夾2
- 青菜
- CSS
folder3
- 青菜
- CSS
folder4
- 薩斯
- CSS
要求:獨立,繁重的任務是否正確每個項目運行時,它在文件從日食觸發保存。但是,我想要的是通過發出grunt命令來執行所有文件夾的縮小過程,即當我在cmd中鍵入「grunt」時,它應該遍歷該文件夾以爲每個文件夾生成縮小的css。目前,它正在爲每個迭代中的最後一個文件夾生成css,因爲initconfig位於循環內部。
Gruntfile.js的簡化版本(僅攜帶相關的代碼):
module.exports = function(grunt) {
var tasks = [
'grunt-contrib-cssmin','grunt-sass'
];
tasks.forEach(function (task) {
grunt.loadNpmTasks(task);
});
var folder =['folder1', 'folder2', 'folder3', 'folder4'];
var source;
var csspath;
var destination;
for (var i = 0; i < folder.length; i ++) {
source=folder[i] + '/sass/*.scss';
csspath=folder[i] + '/css/';
destination=csspath + 'combined-styles.css';
grunt.initConfig({
config: {
destination: destination
},
sass: {
dist: {
files: {
'<%= config.destination %>' : [source]
}
},
},
cssmin: {
target: {
files: [{
expand: true,
cwd: csspath,
src: ['combined-styles.css'],
dest: csspath,
ext: '.min.css'
}]
}
}
});
grunt.task.registerTask(folder[i], ['sass','cssmin']);
}
grunt.task.registerTask('default', folder);
};
任何幫助將不勝感激,謝謝。