Skip to content
This repository was archived by the owner on Feb 26, 2024. It is now read-only.

Commit 2ad936b

Browse files
JiaLiPassionIgorMinar
authored andcommitted
build: build zone-evergreen.js in es2015, add terser minify support
1 parent 82dfd75 commit 2ad936b

27 files changed

+334
-55
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,4 @@ script:
5555
- node_modules/.bin/gulp test/node
5656
- node_modules/.bin/gulp test/node -no-patch-clock
5757
- cp ./test/browser/custom-element.spec.js ./build/test/browser
58-
- node_modules/.bin/karma start karma-dist-sauce-jasmine.es6.conf.js --single-run
5958
- node_modules/.bin/karma start karma-evergreen-dist-sauce-jasmine.conf.js --single-run

gulpfile.js

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,22 @@
1010
var gulp = require('gulp');
1111
var rollup = require('gulp-rollup');
1212
var rename = require('gulp-rename');
13-
var uglify = require('gulp-uglify');
13+
var terser = require('gulp-terser');
1414
var pump = require('pump');
1515
var path = require('path');
1616
var spawn = require('child_process').spawn;
1717
const os = require('os');
1818

19-
function generateScript(inFile, outFile, minify, callback, format) {
19+
function generateScript(inFile, outFile, minify, callback, format, inDir) {
2020
if (!format) {
2121
format = 'umd';
2222
}
23-
inFile = path.join('./build-esm/', inFile).replace(/\.ts$/, '.js');
23+
if (!inDir) {
24+
inDir = './build-esm/'
25+
}
26+
inFile = path.join(inDir, inFile).replace(/\.ts$/, '.js');
2427
var parts = [
25-
gulp.src('./build-esm/lib/**/*.js')
28+
gulp.src(inDir + 'lib/**/*.js')
2629
.pipe(rollup({
2730
input: inFile,
2831
onwarn: function(warning) {
@@ -62,7 +65,9 @@ function generateScript(inFile, outFile, minify, callback, format) {
6265
.pipe(rename(outFile)),
6366
];
6467
if (minify) {
65-
parts.push(uglify());
68+
parts.push(terser({
69+
ecma: format === 'es' ? 6 : 5, // specify one of: 5, 6, 7 or 8
70+
}));
6671
}
6772
parts.push(gulp.dest('./dist'));
6873
pump(parts, callback);
@@ -101,6 +106,10 @@ gulp.task('compile-esm', function(cb) {
101106
tsc('tsconfig-esm.json', cb);
102107
});
103108

109+
gulp.task('compile-esm-2015', function(cb) {
110+
tsc('tsconfig-esm-2015.json', cb);
111+
});
112+
104113
gulp.task('compile-esm-node', function(cb) {
105114
tsc('tsconfig-esm-node.json', cb);
106115
});
@@ -126,12 +135,12 @@ gulp.task('build/zone.min.js', ['compile-esm'], function(cb) {
126135
});
127136

128137
// Zone for the evergreen browser.
129-
gulp.task('build/zone-evergreen.js', ['compile-esm'], function(cb) {
130-
return generateScript('./lib/browser/rollup-main.ts', 'zone-evergreen.js', false, cb);
138+
gulp.task('build/zone-evergreen.js', ['compile-esm-2015'], function(cb) {
139+
return generateScript('./lib/browser/rollup-main.ts', 'zone-evergreen.js', false, cb, 'es', './build-esm-2015/');
131140
});
132141

133-
gulp.task('build/zone-evergreen.min.js', ['compile-esm'], function(cb) {
134-
return generateScript('./lib/browser/rollup-main.ts', 'zone-evergreen.min.js', true, cb);
142+
gulp.task('build/zone-evergreen.min.js', ['compile-esm-2015'], function(cb) {
143+
return generateScript('./lib/browser/rollup-main.ts', 'zone-evergreen.min.js', true, cb, 'es', './build-esm-2015/');
135144
});
136145

137146
// Zone legacy patch for the legacy browser.

karma-build-jasmine.es2015.conf.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
module.exports = function (config) {
3+
require('./karma-build-jasmine.conf.js')(config);
4+
for (let i = 0; i < config.files.length; i ++) {
5+
if (config.files[i] === 'node_modules/core-js-bundle/index.js') {
6+
config.files.splice(i, 1);
7+
break;
8+
}
9+
}
10+
config.client.entrypoint = 'browser_es2015_entry_point';
11+
};

karma-build-jasmine.es6.conf.js

Lines changed: 0 additions & 5 deletions
This file was deleted.

karma-build.conf.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
module.exports = function(config) {
1010
require('./karma-base.conf.js')(config);
11+
config.files.push('node_modules/core-js-bundle/index.js');
1112
config.files.push('build/test/wtf_mock.js');
1213
config.files.push('build/test/test_fake_polyfill.js');
1314
config.files.push('build/lib/zone.js');
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
2+
module.exports = function (config) {
3+
require('./karma-dist-jasmine.conf.js')(config);
4+
require('./sauce.es2015.conf')(config);
5+
const files = config.files;
6+
config.files = [];
7+
for (let i = 0; i < files.length; i ++) {
8+
if (files[i] !== 'node_modules/core-js-bundle/index.js' || files[i] === 'build/test/main.js') {
9+
config.files.push(files[i]);
10+
}
11+
}
12+
config.files.push('build/test/wtf_mock.js');
13+
config.files.push('build/test/test_fake_polyfill.js');
14+
config.files.push('build/test/custom_error.js');
15+
config.files.push({pattern: 'dist/zone-evergreen.js', type: 'module'});
16+
config.files.push('dist/zone-patch-canvas.js');
17+
config.files.push('dist/zone-patch-fetch.js');
18+
config.files.push('dist/webapis-media-query.js');
19+
config.files.push('dist/webapis-notification.js');
20+
config.files.push('dist/zone-patch-user-media.js');
21+
config.files.push('dist/zone-patch-resize-observer.js');
22+
config.files.push('dist/task-tracking.js');
23+
config.files.push('dist/wtf.js');
24+
config.files.push('dist/zone-testing.js');
25+
config.files.push('build/test/test-env-setup-jasmine.js');
26+
config.files.push('build/lib/common/error-rewrite.js');
27+
config.files.push('build/test/browser/custom-element.spec.js');
28+
};

karma-dist-sauce-jasmine.es6.conf.js

Lines changed: 0 additions & 6 deletions
This file was deleted.

karma-dist.conf.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
module.exports = function(config) {
1010
require('./karma-base.conf.js')(config);
11+
config.files.push('node_modules/core-js-bundle/index.js');
1112
config.files.push('build/test/wtf_mock.js');
1213
config.files.push('build/test/test_fake_polyfill.js');
1314
config.files.push('build/test/custom_error.js');

karma-evergreen-dist.conf.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,18 @@
88

99
module.exports = function(config) {
1010
require('./karma-base.conf.js')(config);
11+
const files = config.files;
12+
config.files = [];
13+
for (let i = 0; i < files.length; i ++) {
14+
if (files[i] !== 'node_modules/core-js-bundle/index.js') {
15+
config.files.push(files[i]);
16+
}
17+
}
18+
1119
config.files.push('build/test/wtf_mock.js');
1220
config.files.push('build/test/test_fake_polyfill.js');
1321
config.files.push('build/test/custom_error.js');
14-
config.files.push('dist/zone-evergreen.js');
22+
config.files.push({pattern: 'dist/zone-evergreen.js', type: 'module'});
1523
config.files.push('dist/zone-patch-canvas.js');
1624
config.files.push('dist/zone-patch-fetch.js');
1725
config.files.push('dist/webapis-media-query.js');
@@ -21,5 +29,6 @@ module.exports = function(config) {
2129
config.files.push('dist/task-tracking.js');
2230
config.files.push('dist/wtf.js');
2331
config.files.push('dist/zone-testing.js');
32+
config.files.push({pattern: 'build/test/browser/custom-element.spec.js', type: 'module'});
2433
config.files.push('build/test/main.js');
2534
};

lib/common/promise.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -365,6 +365,10 @@ Zone.__load_patch('ZoneAwarePromise', (global: any, Zone: ZoneType, api: _ZonePr
365365
}
366366
}
367367

368+
get[Symbol.toStringTag]() {
369+
return 'Promise' as any;
370+
}
371+
368372
then<TResult1 = R, TResult2 = never>(
369373
onFulfilled?: ((value: R) => TResult1 | PromiseLike<TResult1>)|undefined|null,
370374
onRejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>)|undefined|

0 commit comments

Comments
 (0)