X Tutup
Skip to content

Commit a08f50b

Browse files
committed
chore(build): allow to run examples and benchmarks without bundles
The bundles will only be used if the flag `--useBundles` is passed to `gulp build.js`.
1 parent 0b6e75a commit a08f50b

File tree

6 files changed

+113
-48
lines changed

6 files changed

+113
-48
lines changed

gulpfile.js

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -369,7 +369,7 @@ function proxyServeDart() {
369369

370370
// ------------------
371371
// web servers
372-
gulp.task('serve.js.dev', ['build.js'], function(neverDone) {
372+
gulp.task('serve.js.dev', ['build.js.dev'], function(neverDone) {
373373
var watch = require('./tools/build/watch');
374374

375375
watch('modules/**', {ignoreInitial: true}, '!broccoli.js.dev');
@@ -980,15 +980,19 @@ gulp.task('!build.tools', function() {
980980
gulp.task('broccoli.js.dev', ['build.tools'],
981981
function(done) { runSequence('!broccoli.js.dev', sequenceComplete(done)); });
982982

983-
gulp.task(
984-
'!broccoli.js.dev',
985-
() => angularBuilder.rebuildBrowserDevTree(
986-
{generateEs6: generateEs6, projects: cliArgsProjects, noTypeChecks: cliArgs.noTypeChecks}));
983+
gulp.task('!broccoli.js.dev', () => angularBuilder.rebuildBrowserDevTree({
984+
generateEs6: generateEs6,
985+
projects: cliArgsProjects,
986+
noTypeChecks: cliArgs.noTypeChecks,
987+
useBundles: cliArgs.useBundles
988+
}));
987989

988-
gulp.task(
989-
'!broccoli.js.prod',
990-
() => angularBuilder.rebuildBrowserProdTree(
991-
{generateEs6: generateEs6, projects: cliArgsProjects, noTypeChecks: cliArgs.noTypeChecks}));
990+
gulp.task('!broccoli.js.prod', () => angularBuilder.rebuildBrowserProdTree({
991+
generateEs6: generateEs6,
992+
projects: cliArgsProjects,
993+
noTypeChecks: cliArgs.noTypeChecks,
994+
useBundles: cliArgs.useBundles
995+
}));
992996

993997
gulp.task('build.js.dev', ['build/clean.js'], function(done) {
994998
runSequence('broccoli.js.dev', 'build.css.material', sequenceComplete(done));
@@ -1011,9 +1015,12 @@ var firstBuildJsCjs = true;
10111015
* private task
10121016
*/
10131017
gulp.task('!build.js.cjs', function() {
1014-
return angularBuilder
1015-
.rebuildNodeTree(
1016-
{generateEs6: generateEs6, projects: cliArgsProjects, noTypeChecks: cliArgs.noTypeChecks})
1018+
return angularBuilder.rebuildNodeTree({
1019+
generateEs6: generateEs6,
1020+
projects: cliArgsProjects,
1021+
noTypeChecks: cliArgs.noTypeChecks,
1022+
useBundles: cliArgs.useBundles
1023+
})
10171024
.then(function() {
10181025
if (firstBuildJsCjs) {
10191026
firstBuildJsCjs = false;

scripts/ci/build_js.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ SCRIPT_DIR=$(dirname $0)
88
source $SCRIPT_DIR/env_dart.sh
99
cd $SCRIPT_DIR/../..
1010

11-
node --max-old-space-size=2000 ./node_modules/.bin/gulp build.js
11+
node --max-old-space-size=2000 ./node_modules/.bin/gulp build.js --useBundles

tools/broccoli/angular_builder.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type Options = {
1515
projects: ProjectMap;
1616
noTypeChecks: boolean;
1717
generateEs6: boolean;
18+
useBundles: boolean;
1819
}
1920
;
2021

@@ -73,7 +74,8 @@ export class AngularBuilder {
7374
sourceMaps: true,
7475
projects: opts.projects,
7576
noTypeChecks: opts.noTypeChecks,
76-
generateEs6: opts.generateEs6
77+
generateEs6: opts.generateEs6,
78+
useBundles: opts.useBundles
7779
},
7880
path.join(this.outputPath, 'js', 'dev'));
7981
return new broccoli.Builder(tree);
@@ -88,7 +90,8 @@ export class AngularBuilder {
8890
sourceMaps: false,
8991
projects: opts.projects,
9092
noTypeChecks: opts.noTypeChecks,
91-
generateEs6: opts.generateEs6
93+
generateEs6: opts.generateEs6,
94+
useBundles: opts.useBundles
9295
},
9396
path.join(this.outputPath, 'js', 'prod'));
9497
return new broccoli.Builder(tree);

tools/broccoli/html-replace/SCRIPTS.html

Lines changed: 38 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,48 @@
11
<script src="es6-shim.js"></script>
22
<script src="system.src.js"></script>
33
<script>
4+
var scriptUrls;
5+
var loadRuntimePackages = [
6+
'angular2_material',
7+
'benchmarks',
8+
'playground',
9+
// TODO(rado): These helpers don't end up in the bundle, thus they should
10+
// not even be in src/*. Move them!
11+
'angular2/src/testing/benchmark_util',
12+
'angular2/src/facade/browser',
13+
'angular2/bootstrap',
14+
'rxjs'
15+
];
16+
if (@@USE_BUNDLES) {
17+
scriptUrls = [
18+
'/bundle/angular2-polyfills.js',
19+
'/bundle/angular2.dev.js',
20+
'/bundle/http.js',
21+
'/bundle/router.dev.js',
22+
'/rxjs/bundles/Rx.js'
23+
];
24+
} else {
25+
console.warn("Not using the Angular 2 bundle. "+
26+
"Don't use this configuration for e2e/performance tests!")
27+
loadRuntimePackages.push('angular2');
28+
scriptUrls = [
29+
'Reflect.js',
30+
'zone-microtask.js',
31+
'long-stack-trace-zone.js'
32+
];
33+
}
34+
var systemJsPackages = {};
35+
loadRuntimePackages.forEach(function(pck) {
36+
systemJsPackages[pck] = {defaultExtension: 'js'};
37+
});
438
System.config({
539
baseURL: '/',
6-
packages: {
7-
'angular2_material': {defaultExtension: 'js'},
8-
'benchmarks': {defaultExtension: 'js'},
9-
'playground': {defaultExtension: 'js'},
10-
// TODO(rado): These helpers don't end up in the bundle, thus they should
11-
// not even be in src/*. Move them!
12-
'angular2/src/testing/benchmark_util': {defaultExtension: 'js'},
13-
'angular2/src/facade/browser': {defaultExtension: 'js'},
14-
'angular2/bootstrap': {defaultExtension: 'js'},
15-
'rxjs': {defaultExtension: 'js'},
16-
}
40+
packages: systemJsPackages
1741
});
42+
for (var i=0; i<scriptUrls.length; i++) {
43+
document.write('<script src="'+scriptUrls[i]+'"></'+'script>');
44+
}
1845
</script>
19-
<script src="/bundle/angular2-polyfills.js"></script>
20-
<script src="/bundle/angular2.dev.js"></script>
21-
<script src="/bundle/http.js"></script>
22-
<script src="/bundle/router.dev.js"></script>
23-
<script src="/rxjs/bundles/Rx.js"></script>
2446
<script>
2547
var filename = '@@PATH/@@FILENAME';
2648
System.import(filename).then(function(m) { m.main(); }, console.error.bind(console));

tools/broccoli/html-replace/SCRIPTS_benchmarks.html

Lines changed: 38 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,48 @@
22
<script src="url_params_to_form.js"></script>
33
<script src="system.src.js"></script>
44
<script>
5+
var scriptUrls;
6+
var loadRuntimePackages = [
7+
'angular2_material',
8+
'benchmarks',
9+
'playground',
10+
// TODO(rado): These helpers don't end up in the bundle, thus they should
11+
// not even be in src/*. Move them!
12+
'angular2/src/testing/benchmark_util',
13+
'angular2/src/facade/browser',
14+
'angular2/bootstrap',
15+
'rxjs'
16+
];
17+
if (@@USE_BUNDLES) {
18+
scriptUrls = [
19+
'/bundle/angular2-polyfills.js',
20+
'/bundle/angular2.dev.js',
21+
'/bundle/http.js',
22+
'/bundle/router.dev.js',
23+
'/rxjs/bundles/Rx.js'
24+
];
25+
} else {
26+
console.warn("Not using the Angular 2 bundle. "+
27+
"Don't use this configuration for e2e/performance tests!")
28+
loadRuntimePackages.push('angular2');
29+
scriptUrls = [
30+
'Reflect.js',
31+
'zone-microtask.js',
32+
'long-stack-trace-zone.js'
33+
];
34+
}
35+
var systemJsPackages = {};
36+
loadRuntimePackages.forEach(function(pck) {
37+
systemJsPackages[pck] = {defaultExtension: 'js'};
38+
});
539
System.config({
640
baseURL: '/',
7-
packages: {
8-
'angular2_material': {defaultExtension: 'js'},
9-
'benchmarks': {defaultExtension: 'js'},
10-
'playground': {defaultExtension: 'js'},
11-
// TODO(rado): These helpers don't end up in the bundle, thus they should
12-
// not even be in src/*. Move them!
13-
'angular2/src/testing/benchmark_util': {defaultExtension: 'js'},
14-
'angular2/src/facade/browser': {defaultExtension: 'js'},
15-
'angular2/bootstrap': {defaultExtension: 'js'},
16-
'rxjs': {defaultExtension: 'js'},
17-
}
41+
packages: systemJsPackages
1842
});
43+
for (var i=0; i<scriptUrls.length; i++) {
44+
document.write('<script src="'+scriptUrls[i]+'"></'+'script>');
45+
}
1946
</script>
20-
<script src="/bundle/angular2-polyfills.js"></script>
21-
<script src="/bundle/angular2.dev.js"></script>
22-
<script src="/rxjs/bundles/Rx.js"></script>
2347
<script>
2448
var filename = '@@PATH/@@FILENAME';
2549
System.import(filename).then(function(m) { m.main(); }, console.error.bind(console));

tools/broccoli/trees/browser_tree.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ module.exports = function makeBrowserTree(options, destinationPath) {
7777
const noTypeChecks = options.noTypeChecks;
7878
const generateEs6 = options.generateEs6;
7979
const sourceMaps = options.sourceMaps;
80+
const useBundles = options.useBundles;
8081

8182
if (modules.angular2) {
8283
var angular2Tree = new Funnel('modules/angular2', {
@@ -149,6 +150,11 @@ module.exports = function makeBrowserTree(options, destinationPath) {
149150
}
150151
};
151152

153+
var useBundlesPatternReplacement = {
154+
match: '@@USE_BUNDLES',
155+
replacement: function(replacement, relativePath) { return useBundles; }
156+
};
157+
152158
// Check that imports do not break barrel boundaries
153159
modulesTree = checkImports(modulesTree);
154160

@@ -218,7 +224,8 @@ module.exports = function makeBrowserTree(options, destinationPath) {
218224
patterns: [
219225
{match: /\$SCRIPTS\$/, replacement: htmlReplace('SCRIPTS')},
220226
scriptPathPatternReplacement,
221-
scriptFilePatternReplacement
227+
scriptFilePatternReplacement,
228+
useBundlesPatternReplacement
222229
]
223230
});
224231
}
@@ -229,7 +236,8 @@ module.exports = function makeBrowserTree(options, destinationPath) {
229236
patterns: [
230237
{match: /\$SCRIPTS\$/, replacement: htmlReplace('SCRIPTS_benchmarks')},
231238
scriptPathPatternReplacement,
232-
scriptFilePatternReplacement
239+
scriptFilePatternReplacement,
240+
useBundlesPatternReplacement
233241
]
234242
});
235243
}
@@ -240,7 +248,8 @@ module.exports = function makeBrowserTree(options, destinationPath) {
240248
patterns: [
241249
{match: /\$SCRIPTS\$/, replacement: htmlReplace('SCRIPTS_benchmarks_external')},
242250
scriptPathPatternReplacement,
243-
scriptFilePatternReplacement
251+
scriptFilePatternReplacement,
252+
useBundlesPatternReplacement
244253
]
245254
});
246255
}

0 commit comments

Comments
 (0)
X Tutup