Skip to content

Commit 8c53508

Browse files
aelboremgechev
authored andcommitted
add bundle rxjs for less request (#2271)
* add bundle rxjs for less request * updating the test config and karma config
1 parent 8181c6e commit 8c53508

File tree

6 files changed

+75
-23
lines changed

6 files changed

+75
-23
lines changed

karma.conf.js

+1
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ module.exports = function(config) {
3535
'node_modules/zone.js/dist/jasmine-patch.js',
3636

3737
// RxJs.
38+
'node_modules/.tmp/Rx.min.js',
3839
{ pattern: 'node_modules/rxjs/**/*.js', included: false, watched: false },
3940
{ pattern: 'node_modules/rxjs/**/*.js.map', included: false, watched: false },
4041

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
"lint": "gulp tslint",
2525
"karma": "karma",
2626
"karma.start": "karma start",
27-
"postinstall": "gulp check.versions && gulp print.banner",
27+
"postinstall": "gulp check.versions && gulp bundle.rxjs && gulp print.banner",
2828
"reinstall": "npm cache clean && npm install",
2929
"serve.coverage": "gulp serve.coverage --color",
3030
"serve.dev": "gulp serve.dev --color --env-config dev",

test-config.js

+18-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,24 @@ System.config({
88
'': {
99
defaultExtension: 'js'
1010
},
11-
rxjs: {
11+
'rxjs': {
12+
main: 'index.js',
13+
defaultExtension: 'js'
14+
},
15+
'rxjs/ajax': {
16+
main: 'index.js',
17+
defaultExtension: 'js'
18+
},
19+
'rxjs/operators': {
20+
main: 'index.js',
21+
defaultExtension: 'js'
22+
},
23+
'rxjs/testing': {
24+
main: 'index.js',
25+
defaultExtension: 'js'
26+
},
27+
'rxjs/webSocket': {
28+
main: 'index.js',
1229
defaultExtension: 'js'
1330
}
1431
}

tools/config/seed.config.interfaces.ts

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export interface ExtendPackages {
1818
name: string;
1919
path?: string;
2020
packageMeta?: any;
21+
bundles?: any;
2122
}
2223

2324
export interface SourceMapExplorerOutputFormat {

tools/config/seed.config.ts

+6-21
Original file line numberDiff line numberDiff line change
@@ -471,6 +471,12 @@ export class SeedConfig {
471471
* @type {any}
472472
*/
473473
SYSTEM_CONFIG_DEV: any = {
474+
bundles: {
475+
'node_modules/.tmp/Rx.min.js': [
476+
'rxjs',
477+
'rxjs/*'
478+
]
479+
},
474480
paths: {
475481
[this.BOOTSTRAP_MODULE]: `${this.APP_BASE}${this.BOOTSTRAP_MODULE}`,
476482
'@angular/animations':
@@ -506,7 +512,6 @@ export class SeedConfig {
506512
'node_modules/@angular/platform-browser-dynamic/bundles/platform-browser-dynamic-testing.umd.js',
507513
'@angular/router/testing':
508514
'node_modules/@angular/router/bundles/router-testing.umd.js',
509-
'rxjs': 'node_modules/rxjs',
510515

511516
'app/': `${this.APP_BASE}app/`,
512517
// For test config
@@ -516,26 +521,6 @@ export class SeedConfig {
516521
packages: {
517522
[this.BOOTSTRAP_DIR]: {
518523
defaultExtension: 'js'
519-
},
520-
'rxjs': {
521-
main: 'index.js',
522-
defaultExtension: 'js'
523-
},
524-
'rxjs/ajax': {
525-
main: 'index.js',
526-
defaultExtension: 'js'
527-
},
528-
'rxjs/operators': {
529-
main: 'index.js',
530-
defaultExtension: 'js'
531-
},
532-
'rxjs/testing': {
533-
main: 'index.js',
534-
defaultExtension: 'js'
535-
},
536-
'rxjs/webSocket': {
537-
main: 'index.js',
538-
defaultExtension: 'js'
539524
}
540525
}
541526
};

tools/tasks/seed/bundle.rxjs.ts

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
2+
const Builder = require('systemjs-builder');
3+
const promisify = require('util').promisify;
4+
const fs = require('fs');
5+
6+
module.exports = () => {
7+
const options = {
8+
'normalize': true,
9+
'runtime': false,
10+
'sourceMaps': true,
11+
'sourceMapContents': false,
12+
'minify': true,
13+
'mangle': false
14+
};
15+
const builder = new Builder('./');
16+
builder.config({
17+
'paths': {
18+
'n:*': 'node_modules/*',
19+
'rxjs/*': 'node_modules/rxjs/*.js',
20+
'rxjs/internal-compatibility': 'node_modules/rxjs/internal-compatibility/index.js',
21+
'rxjs/testing': 'node_modules/rxjs/testing/index.js',
22+
'rxjs/ajax': 'node_modules/rxjs/ajax/index.js',
23+
'rxjs/operators': 'node_modules/rxjs/operators/index.js',
24+
'rxjs/webSocket': 'node_modules/rxjs/webSocket/index.js',
25+
},
26+
'map': {
27+
'rxjs': 'n:rxjs'
28+
},
29+
'packages': {
30+
'rxjs': { 'main': 'index.js', 'defaultExtension': 'js' }
31+
}
32+
});
33+
return builder.bundle('rxjs/index.js + ' +
34+
'rxjs/operators/index.js + ' +
35+
'rxjs/internal-compatibility/index.js + ' +
36+
'rxjs/testing/index.js + ' +
37+
'rxjs/ajax/index.js + ' +
38+
'rxjs/webSocket/index.js',
39+
'node_modules/.tmp/Rx.min.js', options)
40+
.then((output: any) => {
41+
const writeFile = promisify(fs.writeFile);
42+
const code = output.source.replace(/rxjs\/index/gm, 'rxjs');
43+
return writeFile('node_modules/.tmp/Rx.min.js',
44+
(options.sourceMaps)
45+
? code + `\n//# sourceMappingURL=Rx.min.js.map`
46+
: code);
47+
});
48+
};

0 commit comments

Comments
 (0)