Skip to content

Commit b1cf64c

Browse files
author
Jason Bedard
committed
feat(rollup): provide output groupings of js+map for each bundle type
1 parent 3b5fa13 commit b1cf64c

File tree

3 files changed

+118
-10
lines changed

3 files changed

+118
-10
lines changed

internal/e2e/rollup/BUILD.bazel

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,47 @@ jasmine_node_test(
3535
"@npm//unidiff",
3636
],
3737
)
38+
39+
filegroup(
40+
name = "bundle-outputgroups-cjs",
41+
srcs = [":bundle"],
42+
output_group = "cjs",
43+
)
44+
45+
filegroup(
46+
name = "bundle-outputgroups-umd",
47+
srcs = [":bundle"],
48+
output_group = "umd",
49+
)
50+
51+
filegroup(
52+
name = "bundle-outputgroups-es5_min_debug",
53+
srcs = [":bundle"],
54+
output_group = "es5_min_debug",
55+
)
56+
57+
filegroup(
58+
name = "bundle-outputgroups-es5_min",
59+
srcs = [":bundle"],
60+
output_group = "es5_min",
61+
)
62+
63+
jasmine_node_test(
64+
name = "test-outputgroups",
65+
srcs = glob(["*.spec.js"]),
66+
configuration_env_vars = ["UPDATE_GOLDEN"],
67+
data = glob([
68+
"*_golden.js_",
69+
"*_golden.js.map",
70+
]) + [
71+
":bundle-outputgroups-cjs",
72+
":bundle-outputgroups-umd",
73+
":bundle-outputgroups-es5_min",
74+
":bundle-outputgroups-es5_min_debug",
75+
],
76+
deps = [
77+
"//internal/e2e:check_lib",
78+
"@npm//jasmine",
79+
"@npm//unidiff",
80+
],
81+
)

internal/e2e/rollup_code_splitting/BUILD.bazel

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,45 @@ jasmine_node_test(
2626
"@npm//unidiff",
2727
],
2828
)
29+
30+
filegroup(
31+
name = "bundle-outputgroups-es2015",
32+
srcs = [":bundle"],
33+
output_group = "es2015",
34+
)
35+
36+
filegroup(
37+
name = "bundle-outputgroups-es5",
38+
srcs = [":bundle"],
39+
output_group = "es5",
40+
)
41+
42+
filegroup(
43+
name = "bundle-outputgroups-es5_min",
44+
srcs = [":bundle"],
45+
output_group = "es5_min",
46+
)
47+
48+
filegroup(
49+
name = "bundle-outputgroups-es5_min_debug",
50+
srcs = [":bundle"],
51+
output_group = "es5_min_debug",
52+
)
53+
54+
jasmine_node_test(
55+
name = "test-outputgroups",
56+
srcs = glob(["*.spec.js"]),
57+
data = glob([
58+
"*_golden.js_",
59+
]) + [
60+
":bundle-outputgroups-es2015",
61+
":bundle-outputgroups-es5",
62+
":bundle-outputgroups-es5_min",
63+
":bundle-outputgroups-es5_min_debug",
64+
],
65+
deps = [
66+
"//internal/e2e:check_lib",
67+
"@npm//jasmine",
68+
"@npm//unidiff",
69+
],
70+
)

internal/rollup/rollup_bundle.bzl

Lines changed: 32 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -461,24 +461,46 @@ def _rollup_bundle(ctx):
461461
code_split_es5_min_output_dir,
462462
code_split_es5_min_debug_output_dir,
463463
]
464+
group_info = OutputGroupInfo(
465+
es2015 = depset([ctx.outputs.build_es2015, code_split_es2015_output_dir]),
466+
es2015_min = depset([ctx.outputs.build_es2015_min, code_split_es2015_min_output_dir]),
467+
es2015_min_debug = depset([ctx.outputs.build_es2015_min_debug, code_split_es2015_min_debug_output_dir]),
468+
es5 = depset([ctx.outputs.build_es5, code_split_es5_output_dir]),
469+
es5_min = depset([ctx.outputs.build_es5_min, code_split_es5_min_output_dir]),
470+
es5_min_debug = depset([ctx.outputs.build_es5_min_debug, code_split_es5_min_debug_output_dir]),
471+
)
464472

465473
else:
466474
# Generate the bundles
467475
rollup_config = write_rollup_config(ctx)
468-
run_rollup(ctx, _collect_es2015_sources(ctx), rollup_config, ctx.outputs.build_es2015)
469-
run_terser(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es2015_min, config_name = ctx.label.name + "es2015_min")
470-
run_terser(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es2015_min_debug, debug = True, config_name = ctx.label.name + "es2015_min_debug")
476+
es2015_map = run_rollup(ctx, _collect_es2015_sources(ctx), rollup_config, ctx.outputs.build_es2015)
477+
es2015_min_map = run_terser(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es2015_min, config_name = ctx.label.name + "es2015_min", in_source_map = es2015_map)
478+
es2015_min_debug_map = run_terser(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es2015_min_debug, debug = True, config_name = ctx.label.name + "es2015_min_debug", in_source_map = es2015_map)
471479
_run_tsc(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es5)
472-
source_map = run_terser(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min)
473-
run_terser(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min_debug, debug = True)
480+
es5_min_map = run_terser(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min)
481+
es5_min_debug_map = run_terser(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min_debug, debug = True)
474482
cjs_rollup_config = write_rollup_config(ctx, filename = "_%s_cjs.rollup.conf.js", output_format = "cjs")
475-
run_rollup(ctx, _collect_es2015_sources(ctx), cjs_rollup_config, ctx.outputs.build_cjs)
483+
cjs_map = run_rollup(ctx, _collect_es2015_sources(ctx), cjs_rollup_config, ctx.outputs.build_cjs)
476484
umd_rollup_config = write_rollup_config(ctx, filename = "_%s_umd.rollup.conf.js", output_format = "umd")
477-
run_rollup(ctx, _collect_es2015_sources(ctx), umd_rollup_config, ctx.outputs.build_umd)
478-
run_sourcemapexplorer(ctx, ctx.outputs.build_es5_min, source_map, ctx.outputs.explore_html)
479-
files = [ctx.outputs.build_es5_min, source_map]
485+
umd_map = run_rollup(ctx, _collect_es2015_sources(ctx), umd_rollup_config, ctx.outputs.build_umd)
486+
run_sourcemapexplorer(ctx, ctx.outputs.build_es5_min, es5_min_map, ctx.outputs.explore_html)
487+
488+
files = [ctx.outputs.build_es5_min, es5_min_map]
489+
group_info = OutputGroupInfo(
490+
cjs = depset([ctx.outputs.build_cjs, cjs_map]),
491+
es2015 = depset([ctx.outputs.build_es2015, es2015_map]),
492+
es2015_min = depset([ctx.outputs.build_es2015_min, es2015_min_map]),
493+
es2015_min_debug = depset([ctx.outputs.build_es2015_min_debug, es2015_min_debug_map]),
494+
es5 = depset([ctx.outputs.build_es5]),
495+
es5_min = depset([ctx.outputs.build_es5_min, es5_min_map]),
496+
es5_min_debug = depset([ctx.outputs.build_es5_min_debug, es5_min_debug_map]),
497+
umd = depset([ctx.outputs.build_umd, umd_map]),
498+
)
480499

481-
return DefaultInfo(files = depset(files), runfiles = ctx.runfiles(files))
500+
return [
501+
DefaultInfo(files = depset(files), runfiles = ctx.runfiles(files)),
502+
group_info,
503+
]
482504

483505
# Expose our list of aspects so derivative rules can override the deps attribute and
484506
# add their own additional aspects.

0 commit comments

Comments
 (0)