0

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

无论如何......我找不到任何明确的答案,也许我错过了一些非常明显的东西。我对 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 大师吗?:)

4

1 回答 1

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);
于 2014-05-26T19:08:09.943 回答