Gulp plugin for autopolyfiller
JavaScript Makefile
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples/autopolyfiller-uglify
lib Fixes #5 custom parser Dec 23, 2014
test Fixes #5 custom parser Dec 23, 2014
.editorconfig initial commit Mar 2, 2014
.gitignore autopolyfiller-uglify example Jul 23, 2014
.jscs.json initial commit Mar 2, 2014
.jshintignore initial commit Mar 2, 2014
.jshintrc initial commit Mar 2, 2014
.travis.yml Update .travis.yml Dec 23, 2014
LICENSE initial commit Mar 2, 2014
Makefile initial commit Mar 2, 2014
README.md Update README.md Sep 9, 2014
index.js initial commit Mar 2, 2014
package.json

README.md

gulp-autopolyfiller

NPM version Build Status Coverage Status Dependency Status

Autopolyfiller - Precise polyfills. Automatic and minimal polyfills for your code.

It accepts multiply js files and returns a file with all required polyfills. Please note: all input files will be dropped from the output stream of autopolyfiller. To concat polyfills with all your js files please refer to examples.

Usage

First, install gulp-autopolyfiller as a development dependency:

npm install --save-dev gulp-autopolyfiller

Then, add it to your gulpfile.js:

var autopolyfiller = require('gulp-autopolyfiller');

gulp.task('autopolyfiller', function () {
    return gulp.src('./lib/**/*.js')
        .pipe(autopolyfiller('result_polyfill_file.js'))
        .pipe(gulp.dest('./dist'));
});

API

autopolyfiller(fileName, 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

List of target browsers. Autopolyfiller uses Autoprefixer-style browsers format. See Browsers format for details.

Examples

Basic

Steps:

  • Concat all scripts
  • Generate polyfills
  • Append polyfills
  • Uglify
var gulp = require('gulp');
var concat = require('gulp-concat');
var order = require('gulp-order');
var uglify = require('gulp-uglify');
var autopolyfiller = require('gulp-autopolyfiller');
var merge = require('event-stream').merge;

gulp.task('default', function () {
    // Concat all required js files
    var all = gulp.src('js/*.js')
        .pipe(concat('all.js'));

    // Generate polyfills for all files
    var polyfills = all
        .pipe(autopolyfiller('polyfills.js'));

    // Merge polyfills and all files streams
    return merge(polyfills, all)
        // Order files. NB! polyfills MUST be first
        .pipe(order([
            'polyfills.js',
            'all.js'
        ]))
        // Make single file
        .pipe(concat('all.min.js'))
        // Uglify it
        .pipe(uglify())
        // And finally write `all.min.js` into `build/` dir
        .pipe(gulp.dest('build'));
});

Browsers targets

You can specify list of target browsers to reduce amount of polyfills.

var autopolyfiller = require('gulp-autopolyfiller');

gulp.src('./your/js/**/*.js')
	.pipe(autopolyfiller('result_polyfill_file.js', {
        browsers: ['last 2 version', 'ie 8', 'ie 9']
    }))
	.pipe(gulp.dest('./dist'));

Default browsers of Autoprefixer

var autopolyfiller = require('gulp-autopolyfiller');

gulp.src('./your/js/**/*.js')
	.pipe(autopolyfiller('result_polyfill_file.js', {
		browsers: require('autoprefixer').default
	}))
	.pipe(gulp.dest('./dist'));

Removig polyfills

var autopolyfiller = require('gulp-autopolyfiller');

gulp.src('./your/js/**/*.js')
	.pipe(autopolyfiller('polyfills_without_promises.js', {
		exclude: ['Promise']
	}))
	.pipe(gulp.dest('./dist'));

License

MIT License