https://github.com/lovetingyuan/gulp-polyfit
Generate the polyfill file by collecting the polyfill marks in the comment
https://github.com/lovetingyuan/gulp-polyfit
gulp gulp-plugin javascript nodejs polyfill
Last synced: 2 months ago
JSON representation
Generate the polyfill file by collecting the polyfill marks in the comment
- Host: GitHub
- URL: https://github.com/lovetingyuan/gulp-polyfit
- Owner: lovetingyuan
- License: mit
- Created: 2017-03-31T17:38:19.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-04-15T06:11:34.000Z (about 8 years ago)
- Last Synced: 2025-04-01T17:11:52.731Z (2 months ago)
- Topics: gulp, gulp-plugin, javascript, nodejs, polyfill
- Language: JavaScript
- Size: 21.5 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gulp-polyfit
Generate the polyfill file by collecting the polyfill marks in the comment, thanks to https://polyfill.io### install
`npm install gulp-polyfit --save-dev`### usage
```javascript
var gulp = require('gulp')
var polyfit = require('gulp-polyfit')
gulp.task('polyfill', function() {
return gulp.src('test.js')
.pipe(polyfit({
output: './', // output dir, default: './'
minify: true, // default: true, minify the polyfill script
features: [], // extra polyfill features
filename: 'polyfill.min.js', // the polyfill file name, default: polyfill.min.js
result: 'polyfill_list.json' // if specified, will output all the polyfills name to a json file
}))
.pipe(gulp.dest('./'))
})
```
test.js:
```javascript
/**
* polyfill: Array.from,
* Number.parseInt, Number.isInteger
*/
function addInt() {
var args = Array.from(arguments)
// polyfill: Array.prototype.map, Array.prototype.filter
return args.map(function(value) {
return Number.parseInt(value, 10)
}).filter(function(value) {
return Number.isInteger(value)
}).reduce(function(foo, bar) { // polyfill: Array.prototype.reduce
return foo + bar
})
}
console.log(addInt(1, 2, 3)) // result is 6
```run `gulp polyfill`, and the polyfill_list.json will be:
```json
{
"polyfills": [
"Array.from",
"Array.prototype.filter",
"Array.prototype.map",
"Array.prototype.reduce",
"Number.isInteger",
"Number.parseInt"
]
}
```**the polyfill comment must start with `"polyfill:"` and separate the features by commas**
you can find all support features at https://polyfill.io/v2/docs/features/,
you can use [`LABjs`](https://github.com/getify/LABjs) or [`yepnope.js`](https://github.com/SlexAxton/yepnope.js) to load polyfills conditionally,
you can also use the `cdn` service by [`polyfill.io`](https://polyfill.io/v2/docs/examples) to reduce the number of requests