A Grunt plugin for mangling or minifying JavaScript files using Esmangle.
This plugin requires Grunt v0.4.0+.
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-esmangle --save-dev
One the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-esmangle');
In your project’s Gruntfile, add a section named esmangle
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
'esmangle': {
'options': {
// Task-specific options go here
},
'your-target': {
'options': {
// Target-specific options go here
},
'files': {
// Target-specific file lists go here
}
}
}
});
The options
property accepts all the available Escodegen options. See the Escodegen wiki for an overview.
Additionally, there are two Grunt-specific options:
Type: String
Default: empty string
This string will be prepended to the beginning of the mangled/minified output. It is processed using grunt.template.process
, using the default options.
(Default processing options are explained in the grunt.template.process
documentation.)
Choices: false
, 'min'
, 'gzip'
Default: false
Either do not report anything, report only minification result, or report minification and gzip results.
Important: including 'gzip'
results can make this task 5-10× slower depending on the size of the file.
Here’s a practical example of grunt-esmangle:
grunt.initConfig({
'esmangle': {
'options': {
// Don’t preserve semicolons at the end of blocks and programs
'semicolons': false
},
'minify-plugins': {
'options': {
// Always use double quotes as string literal delimiter
'quotes': 'double'
},
'files': {
'dist/all-plugins.min.js': ['js/plugins/*.js']
}
},
'minify-custom-scripts': {
'options': {
// Preserve comments
'comment': true
},
'files': {
'dist/all-custom-scripts.min.js': ['js/custom-scripts/*.js']
}
}
}
});
Mathias Bynens |
grunt-esmangle is dual licensed under the MIT and GPL licenses.