Как указать порядок файлов с помощью 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 во-вторых, он переместит файл вниз в конец списка, но это, похоже, не так.

Как я могу наложить некоторый порядок в списке файлов, которые он соответствует?

Ответ 1

Ваша проблема в том, что 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'
        }
    }

Обратите внимание, что при использовании порядка шаблонов снимок важно.

Ответ 2

Я только что нашел https://github.com/miensol/grunt-concat-in-order.

С этим вы можете создать основной файл js, где вы укажете порядок ваших других файлов javascript с несколькими выражениями @depend.