chore(build): generate static polyfills

This commit is contained in:
Justin Willis
2016-09-15 23:38:35 -05:00
committed by Adam Bradley
parent 6784f5e744
commit a252388e7f
4 changed files with 106 additions and 57 deletions

View File

@@ -75,7 +75,6 @@
"gulp-strip-debug": "^1.1.0",
"gulp-tslint": "^5.0.0",
"gulp-typescript": "^2.13.6",
"gulp-uglify": "^2.0.0",
"gulp-util": "^3.0.6",
"gulp-watch": "^4.2.4",
"html-entities": "^1.1.3",
@@ -96,6 +95,11 @@
"remap-istanbul": "^0.6.4",
"request": "2.53.0",
"resolve-bin": "^0.4.0",
"rollup": "^0.35.10",
"rollup-plugin-commonjs": "^4.1.0",
"rollup-plugin-multi-entry": "^2.0.1",
"rollup-plugin-node-resolve": "^2.0.0",
"rollup-plugin-uglify": "^1.0.1",
"run-sequence": "^1.1.0",
"sassdoc": "^2.1.20",
"semver": "^5.0.1",

View File

@@ -6,5 +6,5 @@ import './tasks/lint';
import './tasks/release';
import './tasks/snapshot';
import './tasks/test';
import './tasks/polyfills';
import './tasks/polyfill';
//import './tasks/theme';

View File

@@ -0,0 +1,100 @@
import { task, src, dest } from 'gulp';
const rollup = require('rollup');
const nodeResolve = require('rollup-plugin-node-resolve');
const commonjs = require('rollup-plugin-commonjs');
const multiEntry = require('rollup-plugin-multi-entry');
const uglify = require('rollup-plugin-uglify');
const nodeResolveOptions = {
jsnext: true,
main: true
};
const modernEntries = [
'node_modules/core-js/es6/array.js',
'node_modules/core-js/es6/date.js',
'node_modules/core-js/es6/function.js',
'node_modules/core-js/es6/map.js',
'node_modules/core-js/es6/number.js',
'node_modules/core-js/es6/object.js',
'node_modules/core-js/es6/parse-float.js',
'node_modules/core-js/es6/parse-int.js',
'node_modules/core-js/es6/promise.js',
'node_modules/core-js/es6/set.js',
'node_modules/core-js/es6/string.js',
'node_modules/core-js/es7/reflect.js',
'node_modules/core-js/es6/reflect.js',
'node_modules/zone.js/dist/zone.js',
];
const allEntries = [
'node_modules/core-js/es6/index.js',
'node_modules/core-js/es7/reflect.js',
'node_modules/zone.js/dist/zone.js',
];
const ngEntries = [
'node_modules/core-js/es7/reflect.js',
'node_modules/zone.js/dist/zone.js',
];
task('polyfill', ['polyfill.modern', 'polyfill.all', 'polyfill.ng', 'polyfill.copy-readme']);
task('polyfill.all', () => {
return rollup.rollup({
entry: allEntries,
plugins: [
multiEntry(),
nodeResolve(nodeResolveOptions),
commonjs(),
uglify()
]
}).then((bundle) => {
bundle.write({
format: 'iife',
moduleName: 'MyBundle',
dest: 'dist/ionic-angular/polyfills/polyfills.js'
});
});
});
task('polyfill.ng', () => {
return rollup.rollup({
entry: ngEntries,
plugins: [
multiEntry(),
nodeResolve(nodeResolveOptions),
commonjs(),
uglify()
]
}).then((bundle) => {
bundle.write({
format: 'iife',
moduleName: 'MyBundle',
dest: 'dist/ionic-angular/polyfills/polyfills.ng.js'
});
});
});
task('polyfill.modern', (done) => {
return rollup.rollup({
entry: modernEntries,
plugins: [
multiEntry(),
nodeResolve(nodeResolveOptions),
commonjs(),
uglify()
]
}).then((bundle) => {
bundle.write({
format: 'iife',
moduleName: 'MyBundle',
dest: 'dist/ionic-angular/polyfills/polyfills.modern.js'
});
});
});
task('polyfill.copy-readme', (done) => {
return src('scripts/npm/polyfills.readme.md')
.pipe(dest('dist/ionic-angular/polyfills/'), done);
});

View File

@@ -1,55 +0,0 @@
import { task, src, dest } from 'gulp';
const concat = require('gulp-concat');
const uglify = require('gulp-uglify');
task('polyfills', ['polyfills.modern', 'polyfills.all', 'polyfills.ng', 'polyfills.copy-readme']);
task('polyfills.modern', (done) => {
return src([
'node_modules/zone.js/dist/zone.min.js',
'node_modules/zone.js/dist/proxy.min.js',
'node_modules/core-js/es6/array.js',
'node_modules/core-js/es6/date.js',
'node_modules/core-js/es6/function.js',
'node_modules/core-js/es6/map.js',
'node_modules/core-js/es6/number.js',
'node_modules/core-js/es6/object.js',
'node_modules/core-js/es6/parse-float.js',
'node_modules/core-js/es6/parse-int.js',
'node_modules/core-js/es6/promise.js',
'node_modules/core-js/es6/set.js',
'node_modules/core-js/es6/string.js',
'node_modules/core-js/es7/reflect.js'
])
.pipe(concat('polyfills.modern.js'))
.pipe(uglify())
.pipe(dest('dist/ionic-angular/polyfills/'), done);
});
task('polyfills.all', (done) => {
return src([
'node_modules/zone.js/dist/zone.min.js',
'node_modules/zone.js/dist/proxy.min.js',
'node_modules/core-js/es6/index.js',
'node_modules/core-js/es7/reflect.js'
])
.pipe(concat('polyfills.js'))
.pipe(uglify())
.pipe(dest('dist/ionic-angular/polyfills/'), done);
});
task('polyfills.ng', (done) => {
return src([
'node_modules/zone.js/dist/zone.min.js',
'node_modules/zone.js/dist/proxy.min.js',
'node_modules/core-js/es7/reflect.js'
])
.pipe(concat('polyfills.ng.js'))
.pipe(uglify())
.pipe(dest('dist/ionic-angular/polyfills/'), done);
});
task('polyfills.copy-readme', (done) => {
return src('scripts/npm/polyfills.readme.md')
.pipe(dest('dist/ionic-angular/polyfills/README.md'), done);
});