Gruntjs Grunt-在循环中运行任务(saas、cssmin)
我正在尝试实现Grunt以自动化CSS合并和缩小的过程。我的文件夹结构: 文件夹1Gruntjs Grunt-在循环中运行任务(saas、cssmin),gruntjs,Gruntjs,我正在尝试实现Grunt以自动化CSS合并和缩小的过程。我的文件夹结构: 文件夹1 --sass --css 文件夹2 --sass --css 文件夹3 --sass --css 文件夹4 --sass --css 要求:从eclipse文件保存时触发grunt任务时,grunt任务在每个项目上都正常运行。但是,我想要的是通过发出grunt命令来执行所有文件夹的缩小过程,即当我在cmd中键入“grunt”时,它应该在文件夹中循环,为每个文件夹生成缩小的css。目前,它正在为每个迭代中的最后一个
--sass
--css 文件夹2
--sass
--css 文件夹3
--sass
--css 文件夹4
--sass
--css 要求:从eclipse文件保存时触发grunt任务时,grunt任务在每个项目上都正常运行。但是,我想要的是通过发出grunt命令来执行所有文件夹的缩小过程,即当我在cmd中键入“grunt”时,它应该在文件夹中循环,为每个文件夹生成缩小的css。目前,它正在为每个迭代中的最后一个文件夹生成css,因为initconfig在循环中 grunfile.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);
};
module.exports=函数(grunt){
变量任务=[
“grunt contrib cssmin”,“grunt-sass”
];
tasks.forEach(函数(任务){
grunt.loadNpmTasks(任务);
});
var folder=['folder1','folder2','folder3','folder4'];
var源;
var csspath;
var目的地;
对于(var i=0;i
非常感谢您的帮助。我已经解决了这个问题。以下是步骤:
files: {
'<%= config.destination %>' : [source]
}
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,csspath,scsspath;
var sass={};
var cssmin={};
for (var i = 0; i < folder.length; i ++ ) {
scsspath=folder[i] + '/sass/';
source='*.scss';
csspath=folder[i] + '/css/';
sass["folder"+i]= {
files: [{
expand: true,
cwd: scsspath,
src: [source],
dest: csspath,
ext: '.css'
}]
};
cssmin["folder"+i]= {
files: [{
expand: true,
cwd: csspath,
src: ['combined-styles.css'],
dest: csspath,
ext: '.min.css'
}]
};
}
grunt.config.set("sass", sass);
grunt.config.set("cssmin", cssmin);
grunt.task.registerTask('default', ['sass','cssmin']);
};
module.exports=函数(grunt){
变量任务=[
“grunt contrib cssmin”,“grunt-sass”
];
tasks.forEach(函数(任务){
grunt.loadNpmTasks(任务);
});
var folder=['folder1','folder2','folder3','folder4'];
var源、csspath、scsspath;
var-sass={};
var cssmin={};
对于(var i=0;i
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,csspath,scsspath;
var sass={};
var cssmin={};
for (var i = 0; i < folder.length; i ++ ) {
scsspath=folder[i] + '/sass/';
source='*.scss';
csspath=folder[i] + '/css/';
sass["folder"+i]= {
files: [{
expand: true,
cwd: scsspath,
src: [source],
dest: csspath,
ext: '.css'
}]
};
cssmin["folder"+i]= {
files: [{
expand: true,
cwd: csspath,
src: ['combined-styles.css'],
dest: csspath,
ext: '.min.css'
}]
};
}
grunt.config.set("sass", sass);
grunt.config.set("cssmin", cssmin);
grunt.task.registerTask('default', ['sass','cssmin']);
};