grunt sass同一结构上的多个src/dest

grunt sass同一结构上的多个src/dest,sass,gruntjs,Sass,Gruntjs,我正在从事一个多网站项目,其中所有网站共享相同的结构: -sites -site1 -css -scss -site2 -css -scss 在我的Grunfile.js中,我的sass任务是这样写的: sass: { options: { sourceMap: true, outputStyle: 'compressed' }, pippo:

我正在从事一个多网站项目,其中所有网站共享相同的结构:

-sites
  -site1
    -css
      -scss
  -site2
    -css
      -scss
在我的Grunfile.js中,我的sass任务是这样写的:

    sass: {
        options: {
            sourceMap: true,
            outputStyle: 'compressed'
        },
        pippo: {
            files: {
                'sites/site1/css/main.css': 'sites/site1/css/sass/main.scss',
                'sites/site2/css/main.css': 'sites/site2/css/sass/main.scss',
            }
        }
    }
可以这样写吗

        sass: {
        options: {
            sourceMap: true,
            outputStyle: 'compressed'
        },
        pippo: {
            files: {
                'sites/**/css/main.css': 'sites/**/css/sass/main.scss'
            }
        }
    }

我测试了它,当我构建它时,它正在添加一个新的**文件夹。。。有什么建议吗?

几个小时后,我在grunt文件的顶部找到了一个可行的解决方案,我添加了:

module.exports = function(grunt) {
    var fs = require('fs');
    console.log("Inside the gruntfile");

    //create dynamic list of scss file paths
    var objDestSource = {
        'public/css/main.css': 'public/css/sass/main.scss'
    };
    fs.readdirSync('sites').forEach(function(folder){
        objDestSource['sites/'+folder+'/css/main.css'] = 'sites/'+folder+'/css/sass/main.scss';
    });
    console.log(objDestSource);
    // end scss function
在grunt sass任务中,我刚改为:

sass: {
        options: {
            sourceMap: true,
            outputStyle: 'compressed'
        },
        taskName: {
            files: objDestSource
        }
    }
观察任务:

watch: {
   sass: {
       files: [
           'public/css/sass/**/*.scss',
           'sites/**/css/sass/**/*.scss'
       ],
       tasks: ['sass'],
       options: {
           spawn: false
       }
   }
}
这样我就可以添加一个新的子网站,而不必每次都编辑gruntfile