Grunt babel несколько файлов и сохранить отображение источника

Я пытаюсь, используя grunt и babel, транспилировать все файлы js6 в папку и в конечном итоге получить объединенный один файл (js5) с рабочей картой источника в исходные файлы es6. Однако sourcemapping не работает. Мои настройки babel, concat ниже:

 "babel": {
        options: {
            sourceMap : true
        },
        dist: {
            files:[
                {
                    expand: true,
                    cwd: 'wwwroot/js/src',
                    src: ['*.js'],
                    dest: 'tmp/js'
                }]
        }
    },

    concat: {
        options: {
            sourceMap: true
        },
        js: {
            src: [
              'tmp/js/*.js',
            ],
            dest: 'wwwroot/js/app.js'
        }
    }

Versions:
"grunt": "0.4.5",
"grunt-bower-task": "0.4.0",
"grunt-babel": "5.0.1",
"grunt-contrib-concat" : "0.5.1"

Я заканчиваю, во-первых, папку с большим количеством JS-файлов и src-карт(каталог tmp). Но concatinating их в один файл портит полностью с сопоставления источников.

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

1 ответов


изменение порядка задач сделает это намного проще.Сначала запустите concat задача в файлах JS. После этого беги babel задача на одном файле, созданном concat задача ранее со следующими параметрами

options: {
                sourceMap: true,
                inputSourceMap: grunt.file.readJSON('script.js.map')
            },
на script.js.map file-имя исходного файла карты, сгенерированного concat задач. As inputSourceMap опция исключает исходный объект карты, мы передаем его с помощью хрюкать.файл в API readJSON метод

полный файл Grunt конфигурация будет:

concat: {
        options: {
            sourceMap: true
        },
        js: {
            src: ['Modules/**/js/*.js'],
            dest: 'script.js'
        }
    },
    babel: {
        dist: {
            options: {
                sourceMap: true,
                inputSourceMap: grunt.file.readJSON('script.js.map')
            },
            src: [
                'script.js',
            ],
            dest: 'app.js'
        }
    }

пример проекта:https://github.com/pra85/Grunt-Concat-Babel-Example