Awesome
grunt-autopolyfiller
Autopolyfiller - Precise polyfills. Automatic and minimal polyfills for your code.
Getting Started
This plugin requires Grunt.
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-autopolyfiller --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-autopolyfiller');
The "autopolyfiller" task
Overview
In your project's Gruntfile, add a section named autopolyfiller
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
autopolyfiller: {
options: {
browsers: ['Chrome 7']
},
your_target: {
'result_polyfill_file.js': ['list/of/your/**/*.js']
}
}
});
Options
options.browsers
Type: Array
Default value: []
- all browsers
options.include
Type: Array
Default value: []
- list of extra polyfills to add
options.exclude
Type: Array
Default value: []
- list of polyfills to remove
options.parser
Type: String
Default value: null
- custom parser as a node module name
options.parser_options
Type: Object
Default value: {}
- custom parser options
List of target browsers. Autopolyfiller uses Autoprefixer-style browsers format. See Browsers format for details.
Usage Examples
Multiply polyfills
By default autopolyfiller
will generate polyfills for all browsers.
grunt.initConfig({
autopolyfiller: {
for_all_browsers: {
files: {
'www/file_with_all_polyfills.js': ['your/js/**/*.js'],
'www/another_polyfills.js': ['some/js/**/*.js'],
}
}
}
});
Browsers targets
You can specify list of target browsers to reduce amount of polyfills.
grunt.initConfig({
autopolyfiller: {
latest_browsers_and_ie: {
options: {
browsers: ['last 2 version', 'ie 8', 'ie 9']
},
files: {
'www/file_with_all_polyfills.js': ['your/js/**/*.js']
}
}
}
});
Default browsers of Autoprefixer
grunt.initConfig({
autopolyfiller: {
for_default_autoprefixer_browsers: {
options: {
browsers: require('autoprefixer').default
},
files: {
'www/file_with_all_polyfills.js': ['your/js/**/*.js']
}
}
}
});
Removing polyfills
grunt.initConfig({
autopolyfiller: {
without_promise_polyfill: {
options: {
exclude: ['Promise']
},
files: {
'www/file_with_all_polyfills.js': ['your/js/**/*.js']
}
}
}
});
License
Copyright (c) 2014 Mikhail Davydov. Licensed under the MIT license.