grunt-adjust-sourcemaps
Adjusts sourcemaps in arbitrary ways. This can be done by either directly manipulating the JSON representation or using the Mozilla SourceMaps module. The plugin finds and parses sourcemaps, allows you to do any custom manipulation and then writes the maps to a new location.
Getting Started
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-adjust-sourcemaps --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-adjust-sourcemaps');
The "adjust_sourcemaps" task
Overview
In your project's Gruntfile, add a section named adjust_sourcemaps
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
adjust_sourcemaps: {
options: {
process: function(json, sourceMapGenerator, sourceMapConsumer, sourceMapPackage) {
// do something
return json || sourceMapGenerator;
}
},
your_target: {
files: [{
expand: true,
src: 'some/sourcemaps/*.js.map',
dest: 'some/output-dir'
}]
},
},
});
A further note is that grunt.option('adjust_sourcemaps.' + target_name + '.sources')
will contain an array of all files mentioned in the processed sourcemaps (this is
useful when trying to copy original files for deployment for easier debugging).
Options
options.process
Type: Function(jsonRepresenation, [sourceMapGenerator, sourceMapConsumer, sourceMapsPackage])
Default value: Identity function
Here you can adjust your sourcemaps to your hearts content. The arguments are as follows:
`jsonRepresenation': since sourcemaps are only JSON, this is the RAW json object of the sourcemap.
sourceMapGenerator
: sourceMapGenerator which has the sourcemap alreasy preloaded.
sourceMapConsumer
: sourceMapConsumer preloaded with your sourcemap.
sourceMapsPackage
: https://github.com/mozilla/source-map package loaded for custom manipulations with the source.
The function should return either a JSON object representing the sourcemap or a sourceMapGenerator.
Contributing
Maintaned by Jakub Hampl (@gampleman)
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.