我刚刚开始使用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
秒,它会将文件移动到列表的底部,但情况似乎并非如此。
如何在匹配的文件列表上强加一些订单?
答案 0 :(得分:15)
您的问题是main.js
与第一个模式匹配,因此第二个模式变得多余。这可能看起来像是一种hacky方式,但基本上你必须从第一个模式中排除它 之前你将它包含在第二个模式中;像这样:
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'
}
}
请注意,使用迷你匹配模式时,顺序非常重要。
答案 1 :(得分:5)
我刚刚找到https://github.com/miensol/grunt-concat-in-order。
使用它可以创建一个主js文件,在其中指定具有多个@depend表达式的其他javascript文件的顺序。