咕噜。以编程方式将并行文件夹中的相应文件与concat合并

时间:2014-05-25 20:10:15

标签: gruntjs grunt-contrib-concat

这是我在StackOverflow上的第一篇文章!:D我的意思是......永远!

无论如何......我找不到任何明确的答案,也许我错过了一些非常明显的东西。我也是Grunt的新手。我正在寻找一种方法,在几行代码中将并行css文件合并到两个不同的文件夹中。因此,对于每个文件来说,这是一个更好的解决方案:

concat : {
  options : { separator : '\n' },
      css : {
        files:{

          '<%= pkg.dest %>/app/css/main_blue.css' :
            [ 'app/css/base/main_blue.css', 'app/css/extended/main_blue.css' ],

          '<%= pkg.dest %>/app/css/main_red.css' :
            [ 'app/css/base/main_red.css', 'app/css/extended/main_red.css' ],

          '<%= pkg.dest %>/app/css/home.css' :
           [ 'app/css/base/home.css', 'app/css/extended/home.css' ],
          ...
          '<%= pkg.dest %>/app/css/.../foo/bar/xx.css' :
            ['app/css/base/.../foo/bar/xx.css', 'app/css/extended/.../foo/bar/xx.css' ]
          ...
        }
    }
}

那里的任何Grunt大师可以提供帮助吗? :)

1 个答案:

答案 0 :(得分:0)

您可以构建动态传递给grunt.initConfig的配置对象。

var config = {}; // <- your grunt config
var files = ['blue', 'red', 'home'];
for (var i = 0; i < files.length; i++) {
  config['concat']['options']['css']['files']['<%= pkg.dest %>/app/css/'+files[i]+'.css'] = [ 'app/css/base/'+files[i]+'.css', 'app/css/extended/'+files[i]+'.css' ];
}
grunt.initConfig(config);