【发布时间】:2017-06-13 05:07:24
【问题描述】:
我正在尝试实现 Grunt 来自动化 CSS 合并和缩小的过程。我的文件夹结构:
文件夹 1
-- 萨斯
--css
文件夹2
-- 萨斯
--css
文件夹3
-- 萨斯
--css
文件夹4
-- 萨斯
--css
要求:单独来说,当 grunt 任务从 eclipse 中触发文件保存时,它在每个项目上都能正常运行。但是,我想要的是通过发出 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);
};
任何帮助将不胜感激,谢谢。
【问题讨论】:
标签: gruntjs