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