# gulp-autopolyfiller

> Autopolyfiller plugin for Gulp.

Latest version **1.2.1** (published 2015-03-16) · MIT license · 0 weekly downloads

## Install

```sh
npm install gulp-autopolyfiller
pnpm add gulp-autopolyfiller
yarn add gulp-autopolyfiller
bun add gulp-autopolyfiller
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.2.1 |
| Published | 2015-03-16 |
| First published | 2014-03-02 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.9 |
| Dependencies | 3 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 53 |
| Author | Mikhail Davydov |
| Maintainers | azproduction |
| Keywords | gulpplugin, autopolyfiller, polyfills, polyfill |

## Links

- npm: https://www.npmjs.com/package/gulp-autopolyfiller
- Repository: https://github.com/azproduction/gulp-autopolyfiller
- Issues: https://github.com/azproduction/gulp-autopolyfiller/issues
- npm.io page: https://npm.io/package/gulp-autopolyfiller

## Dependencies (3)

- [through](https://npm.io/package/through.md) ~2.3.4
- [gulp-util](https://npm.io/package/gulp-util.md) ~2.2.14
- [autopolyfiller](https://npm.io/package/autopolyfiller.md) ^1.6.0

## Recent versions

- 1.2.1 (latest) — 2015-03-16
- 1.2.0 — 2014-12-23
- 1.1.1 — 2014-12-11
- 1.1.0 — 2014-05-03
- 1.0.1 — 2014-03-02

## README

# gulp-autopolyfiller

[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url]  [![Coverage Status][coveralls-image]][coveralls-url] [![Dependency Status][depstat-image]][depstat-url]

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:

```shell
npm install --save-dev gulp-autopolyfiller
```

Then, add it to your `gulpfile.js`:

```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](https://github.com/ai/autoprefixer#browsers) for details.

## Examples

#### Basic

Steps:

 - Concat all scripts
 - Generate polyfills
 - Append polyfills
 - Uglify

```js
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.

```js
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

```js
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

```js
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](http://en.wikipedia.org/wiki/MIT_License)

[npm-url]: https://npmjs.org/package/gulp-autopolyfiller
[npm-image]: https://badge.fury.io/js/gulp-autopolyfiller.png

[travis-url]: http://travis-ci.org/azproduction/gulp-autopolyfiller
[travis-image]: https://secure.travis-ci.org/azproduction/gulp-autopolyfiller.png?branch=master

[coveralls-url]: https://coveralls.io/r/azproduction/gulp-autopolyfiller
[coveralls-image]: https://coveralls.io/repos/azproduction/gulp-autopolyfiller/badge.png

[depstat-url]: https://gemnasium.com/azproduction/gulp-autopolyfiller
[depstat-image]: https://gemnasium.com/azproduction/gulp-autopolyfiller.png

---
_Source: https://npm.io/package/gulp-autopolyfiller · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
