I use concat to merge JS files into one file and uglify to minimize the JavaScript. How can I create a sourcemaps file that uses the source JS files?
My current gruntfile:
concat: {
options: {
// define a string to put between each file in the concatenated output
separator: ';'
},
dist: {
// the files to concatenate
src: ['<%= config.src %>/js/**/*.js'],
// the location of the resulting JS file
dest: '<%= config.dist %>/js/main.js'
}
},
uglify: {
dist: {
files: {
'<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>']
}
}
},
Damon Friendship
You need to enable source maps on both the concat
and uglify
tasks, and you must specify the sourceMapIn
option for the uglify task.
Here's a sample grunt config:
concat : {
options : {
sourceMap :true
},
dist : {
src : ['www/js/**/*.js'],
dest : '.tmp/main.js'
}
},
uglify : {
options : {
sourceMap : true,
sourceMapIncludeSources : true,
sourceMapIn : '.tmp/main.js.map'
},
dist : {
src : '<%= concat.dist.dest %>',
dest : 'www/main.min.js'
}
}
Per the grunt-contrib-uglify docs, you can enable sourcemap generation as part of the uglify process.
Your uglify config would look something like:
uglify: {
dist: {
files: {
'<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>']
},
options: {
sourceMap: true
}
},
来源:https://stackoverflow.com/questions/25792954/grunt-concat-uglify-with-sourcemaps