Skip to content

Commit a4b5500

Browse files
feat(*): bundle using rollupjs for smaller bundle and faster init times
1 parent a51f1de commit a4b5500

File tree

5 files changed

+108
-23
lines changed

5 files changed

+108
-23
lines changed

package.json

+8-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,11 @@
66
"clean": "shx rm -rf lib lib-esm _doc build release *.log",
77
"build": "tsc && tsc -m es6 --outDir lib-esm && npm run fixdts",
88
"fixdts": "dts-downlevel 'lib/**/*.d.ts' 'lib-esm/**/*.d.ts'",
9-
"package": "npm run clean && npm run build && webpack --hide-modules",
9+
"package": "npm run clean && npm run build && npm run bundle",
10+
"bundle": "npm run bundle_router && npm run bundle_events && npm run bundle_resolve",
11+
"bundle_router": "rollup -c --environment ROUTER && rollup -c --environment ROUTER,MINIFY",
12+
"bundle_events": "rollup -c --environment EVENTS && rollup -c --environment EVENTS,MINIFY",
13+
"bundle_resolve": "rollup -c --environment RESOLVE && rollup -c --environment RESOLVE,MINIFY",
1014
"test": "npm run test:integrate",
1115
"test:ng12": "karma start --ngversion 1.2.28",
1216
"test:ng13": "karma start --ngversion 1.3.16",
@@ -89,6 +93,9 @@
8993
"lodash": "^4.5.1",
9094
"remap-istanbul": "^0.6.3",
9195
"replace-in-file": "^2.0.3",
96+
"rollup": "^0.37.0",
97+
"rollup-plugin-node-resolve": "^2.0.0",
98+
"rollup-plugin-uglify": "^1.0.1",
9299
"shelljs": "^0.7.0",
93100
"shx": "^0.1.4",
94101
"systemjs": "^0.18.4",

rollup.config.js

+63
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
import nodeResolve from 'rollup-plugin-node-resolve';
2+
import uglify from 'rollup-plugin-uglify';
3+
4+
var MINIFY = process.env.MINIFY;
5+
var ROUTER = process.env.ROUTER;
6+
var EVENTS = process.env.EVENTS;
7+
var RESOLVE = process.env.RESOLVE;
8+
9+
var pkg = require('./package.json');
10+
var banner =
11+
`/**
12+
* ${pkg.description}
13+
* @version v${pkg.version}
14+
* @link ${pkg.homepage}
15+
* @license MIT License, http://www.opensource.org/licenses/MIT
16+
*/`;
17+
18+
var uglifyOpts = { output: {} };
19+
// retain multiline comment with @license
20+
uglifyOpts.output.comments = (node, comment) =>
21+
comment.type === 'comment2' && /@license/i.test(comment.value);
22+
var plugins = (MINIFY ? [uglify(uglifyOpts)] : []).concat(nodeResolve({jsnext: true}));
23+
24+
var extension = MINIFY ? ".min.js" : ".js";
25+
26+
const BASE_CONFIG = {
27+
sourceMap: true,
28+
format: 'umd',
29+
exports: 'named',
30+
plugins: plugins,
31+
banner: banner,
32+
};
33+
34+
const ROUTER_CONFIG = Object.assign({
35+
moduleName: 'angular-ui-router',
36+
entry: 'lib-esm/index.js',
37+
dest: 'release/angular-ui-router' + extension,
38+
globals: { angular: 'angular' },
39+
external: 'angular',
40+
}, BASE_CONFIG);
41+
42+
const EVENTS_CONFIG = Object.assign({}, BASE_CONFIG, {
43+
moduleName: 'angular-ui-router-state-events',
44+
entry: 'lib-esm/legacy/stateEvents.js',
45+
dest: 'release/stateEvents' + extension,
46+
globals: { angular: 'angular', 'ui-router-core': 'ui-router-core' },
47+
external: ['angular', 'ui-router-core'],
48+
});
49+
50+
const RESOLVE_CONFIG = Object.assign({}, BASE_CONFIG, {
51+
moduleName: 'angular-ui-router-resolve-service',
52+
entry: 'lib-esm/legacy/resolveService.js',
53+
dest: 'release/resolveService' + extension,
54+
globals: { angular: 'angular', 'ui-router-core': 'ui-router-core' },
55+
external: ['angular', 'ui-router-core'],
56+
});
57+
58+
const CONFIG =
59+
RESOLVE ? RESOLVE_CONFIG :
60+
EVENTS ? EVENTS_CONFIG :
61+
ROUTER ? ROUTER_CONFIG : ROUTER_CONFIG;
62+
63+
export default CONFIG;

src/index.ts

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
/**
22
* Main entry point for angular 1.x build
33
* @module ng1
4-
*/
5-
/** for typedoc */
4+
*/ /** */
65

6+
import * as core from "ui-router-core";
7+
export { core };
78
export * from "ui-router-core";
89

910
export * from "./interface";

webpack.config.js

-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
// <package>/../../src/ is copied to <package>/src
2-
// This config is then copied to <package>/src/webpack.config.js
3-
41
var pkg = require('./package.json');
52
var banner = pkg.description + '\n' +
63
'@version v' + pkg.version + '\n' +

yarn.lock

+34-17
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,6 @@ [email protected]:
224224
version "0.8.12"
225225
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.12.tgz#a0d90e4351bb887716c83fd637ebf818af4adfcc"
226226

227-
228-
version "0.8.15"
229-
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.8.15.tgz#8eef0827f04dff0ec8857ba925abe3fea6194e52"
230-
231227
232228
version "0.9.2"
233229
resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.2.tgz#2cc19979d15c655108bf565323b8e7ee38751f6b"
@@ -506,6 +502,12 @@ breakable@~1.0.0:
506502
version "1.0.0"
507503
resolved "https://registry.yarnpkg.com/breakable/-/breakable-1.0.0.tgz#784a797915a38ead27bad456b5572cb4bbaa78c1"
508504

505+
browser-resolve@^1.11.0:
506+
version "1.11.2"
507+
resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce"
508+
dependencies:
509+
resolve "1.1.7"
510+
509511
510512
version "0.4.0"
511513
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-0.4.0.tgz#067149b668df31c4b58533e02d01e806d8608e2c"
@@ -530,7 +532,7 @@ buffer@^4.9.0:
530532
ieee754 "^1.1.4"
531533
isarray "^1.0.0"
532534

533-
builtin-modules@^1.0.0:
535+
builtin-modules@^1.0.0, builtin-modules@^1.1.0:
534536
version "1.1.1"
535537
resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f"
536538

@@ -1264,6 +1266,10 @@ expand-range@^1.8.1:
12641266
dependencies:
12651267
fill-range "^2.1.0"
12661268

1269+
expose-loader@^0.7.1:
1270+
version "0.7.1"
1271+
resolved "https://registry.yarnpkg.com/expose-loader/-/expose-loader-0.7.1.tgz#411ee89443aa682f8ea9d9111accf41bfd7e94d9"
1272+
12671273
express@^4.13.3:
12681274
version "4.14.0"
12691275
resolved "https://registry.yarnpkg.com/express/-/express-4.14.0.tgz#c1ee3f42cdc891fb3dc650a8922d51ec847d0d66"
@@ -2977,7 +2983,7 @@ readdirp@^2.0.0:
29772983
readable-stream "^2.0.2"
29782984
set-immediate-shim "^1.0.1"
29792985

2980-
2986+
[email protected], recast@^0.10.10:
29812987
version "0.10.33"
29822988
resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.33.tgz#942808f7aa016f1fa7142c461d7e5704aaa8d697"
29832989
dependencies:
@@ -2986,15 +2992,6 @@ [email protected]:
29862992
private "~0.1.5"
29872993
source-map "~0.5.0"
29882994

2989-
recast@^0.10.10:
2990-
version "0.10.43"
2991-
resolved "https://registry.yarnpkg.com/recast/-/recast-0.10.43.tgz#b95d50f6d60761a5f6252e15d80678168491ce7f"
2992-
dependencies:
2993-
ast-types "0.8.15"
2994-
esprima-fb "~15001.1001.0-dev-harmony-fb"
2995-
private "~0.1.5"
2996-
source-map "~0.5.0"
2997-
29982995
recast@^0.11.17:
29992996
version "0.11.18"
30002997
resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.18.tgz#07af6257ca769868815209401d4d60eef1b5b947"
@@ -3146,7 +3143,7 @@ [email protected], [email protected]:
31463143
version "1.0.0"
31473144
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
31483145

3149-
[email protected], resolve@^1.1.6:
3146+
31503147
version "1.1.7"
31513148
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b"
31523149

@@ -3166,6 +3163,26 @@ [email protected]:
31663163
version "0.2.0"
31673164
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-0.2.0.tgz#2bf198bde167cacfa51c0a928e84b68bbe171fce"
31683165

3166+
rollup-plugin-node-resolve@^2.0.0:
3167+
version "2.0.0"
3168+
resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-2.0.0.tgz#07e0ae94ac002a3ea36e8f33ca121d9f836b1309"
3169+
dependencies:
3170+
browser-resolve "^1.11.0"
3171+
builtin-modules "^1.1.0"
3172+
resolve "^1.1.6"
3173+
3174+
rollup-plugin-uglify@^1.0.1:
3175+
version "1.0.1"
3176+
resolved "https://registry.yarnpkg.com/rollup-plugin-uglify/-/rollup-plugin-uglify-1.0.1.tgz#11d0b0c8bcd2d07e6908f74fd16b0152390b922a"
3177+
dependencies:
3178+
uglify-js "^2.6.1"
3179+
3180+
rollup@^0.37.0:
3181+
version "0.37.0"
3182+
resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.37.0.tgz#759a51708ac08b027597babff171a026cf712d8d"
3183+
dependencies:
3184+
source-map-support "^0.4.0"
3185+
31693186
"semver@2 || 3 || 4 || 5", semver@^5.0.1, semver@~5.3.0:
31703187
version "5.3.0"
31713188
resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f"
@@ -3736,7 +3753,7 @@ typescript@^2.0.3, typescript@^2.1.4:
37363753
version "2.1.4"
37373754
resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.1.4.tgz#b53b69fb841126acb1dd4b397d21daba87572251"
37383755

3739-
uglify-js@^2.6, uglify-js@~2.7.3:
3756+
uglify-js@^2.6, uglify-js@^2.6.1, uglify-js@~2.7.3:
37403757
version "2.7.5"
37413758
resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.7.5.tgz#4612c0c7baaee2ba7c487de4904ae122079f2ca8"
37423759
dependencies:

0 commit comments

Comments
 (0)