如何用Grunt指定文件顺序?

我刚开始使用Grunt ,并试图获取concat任务,以特定的顺序连接我的文件。 这是我得到的:

module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), concat: { options: { separator: ';' }, dist: { src: ['www/js/*.js','www/js/main.js','!**/*.{min,pack}.js','!<%= concat.dist.dest %>','!<%= uglify.dist %>'], dest: 'www/js/<%= pkg.name %>.js' } }, 

我希望通过把www/js/main.js第二位,它会把文件移到列表的底部,但是看起来并不是这样。

我怎样才能在它匹配的文件列表上施加一些命令?

你的问题是main.js被第一个模式匹配,所以第二个模式是冗余的。 这可能看起来像是一个诡计多端的方法,但基本上你必须在第二个模式中包含它之前 ,将它从第一个模式中排除 。 像这样:

  concat: { options: { separator: ';' }, dist: { src: ['www/js/*.js', '!www/js/main.js', 'www/js/main.js','!**/*.{min,pack}.js','!<%= concat.dist.dest %>','!<%= uglify.dist %>'], dest: 'www/js/<%= pkg.name %>.js' } } 

请注意,使用minimatch模式时,顺序非常重要。

我刚刚发现https://github.com/miensol/grunt-concat-in-order

有了这个,你可以创build一个主要的js文件,在这里你可以用多个@dependexpression式来指定其他JavaScript文件的顺序。