From 39ef57971cd73d413f74d6f5f000ea755b827b83 Mon Sep 17 00:00:00 2001 From: JiaLiPassion Date: Sun, 22 Dec 2019 10:27:41 +0900 Subject: [PATCH] build: refactor zone bazel settings (#34532) PR Close #34532 --- packages/zone.js/dist/BUILD.bazel | 159 +++------------------------ packages/zone.js/dist/tools.bzl | 35 ++++++ packages/zone.js/test/BUILD.bazel | 16 +-- packages/zone.js/test/karma_test.bzl | 52 +++------ tools/defaults.bzl | 6 +- 5 files changed, 77 insertions(+), 191 deletions(-) create mode 100644 packages/zone.js/dist/tools.bzl diff --git a/packages/zone.js/dist/BUILD.bazel b/packages/zone.js/dist/BUILD.bazel index 41f5811016..34b399eec8 100644 --- a/packages/zone.js/dist/BUILD.bazel +++ b/packages/zone.js/dist/BUILD.bazel @@ -1,5 +1,5 @@ -load("//tools:defaults.bzl", "rollup_bundle") load("//packages/zone.js:bundles.bzl", "ES2015_BUNDLES", "ES5_BUNDLES", "ES5_GLOBAL_BUNDLES") +load("//packages/zone.js/dist:tools.bzl", "generate_dist", "zone_rollup_bundle") package(default_visibility = ["//visibility:public"]) @@ -18,147 +18,22 @@ genrule( cmd = "cp $< $@", ) -[ - rollup_bundle( - name = b[0].replace("-", "_") + "_rollup", - config_file = "//packages/zone.js:rollup-es5.config.js", - entry_point = b[1] + ".ts", - deps = [ - "//packages/zone.js/lib", - "@npm//rollup-plugin-commonjs", - "@npm//rollup-plugin-node-resolve", - ], - ) - for b in ES5_BUNDLES.items() -] +zone_rollup_bundle( + bundles = ES5_BUNDLES.items(), + config_file = "//packages/zone.js:rollup-es5.config.js", +) -[ - rollup_bundle( - name = b[0].replace("-", "_") + "_rollup", - config_file = "//packages/zone.js:rollup-es5_global-es2015.config.js", - entry_point = b[1] + ".ts", - deps = [ - "//packages/zone.js/lib", - "@npm//rollup-plugin-commonjs", - "@npm//rollup-plugin-node-resolve", - ], - ) - for b in ES5_GLOBAL_BUNDLES.items() + ES2015_BUNDLES.items() -] +zone_rollup_bundle( + bundles = ES5_GLOBAL_BUNDLES.items() + ES2015_BUNDLES.items(), + config_file = "//packages/zone.js:rollup-es5_global-es2015.config.js", +) -# Extract and rename each es5 bundle to a .js and .min.js in the dist/ dir -[ - genrule( - name = b[0] + "-dist", - srcs = [ - b[0].replace("-", "_") + "_rollup.es5umd.js", - b[0].replace("-", "_") + "_rollup.min.es5umd.js", - ], - outs = [ - b[0] + ".js", - b[0] + ".min.js", - ], - cmd = " && ".join([ - "mkdir -p $(@D)", - # remove the last line '//# sourceMappingURL=b[0].umd.js.map' because we don't release - # source map for now - "sed '$$d' $(@D)/" + b[0].replace("-", "_") + "_rollup.es5umd.js > $(@D)/" + b[0] + ".js", - "cp $(@D)/" + b[0].replace("-", "_") + "_rollup.min.es5umd.js $(@D)/" + b[0] + ".min.js", - ]), - ) - for b in ES5_BUNDLES.items() + ES5_GLOBAL_BUNDLES.items() -] +generate_dist( + bundles = ES5_BUNDLES.items() + ES5_GLOBAL_BUNDLES.items(), + module = "es5", +) -# Extract and rename each es5 bundle to a .js and .min.js in the dist/ dir -[ - genrule( - name = b[0] + "-dist-dev-test", - srcs = [ - b[0].replace("-", "_") + "_rollup.es5umd.js", - ], - outs = [ - b[0] + ".dev.test.js", - ], - cmd = " && ".join([ - "mkdir -p $(@D)", - "cp $(@D)/" + b[0].replace("-", "_") + "_rollup.es5umd.js $(@D)/" + b[0] + ".dev.test.js", - ]), - ) - for b in ES5_BUNDLES.items() + ES5_GLOBAL_BUNDLES.items() -] - -[ - genrule( - name = b + "-dist-dev-test", - srcs = [ - b.replace("-", "_") + "_rollup.umd.js", - ], - outs = [ - b + ".dev.test.js", - ], - cmd = " && ".join([ - "mkdir -p $(@D)", - "cp $(@D)/" + b.replace("-", "_") + "_rollup.umd.js $(@D)/" + b + ".dev.test.js", - ]), - ) - for b in ES2015_BUNDLES -] - -# Extract and rename each es5 bundle to a .js and .min.js in the dist/ dir -[ - genrule( - name = b[0] + "-dist-test", - srcs = [ - b[0].replace("-", "_") + "_rollup.min.es5umd.js", - ], - outs = [ - b[0] + ".test.min.js", - ], - cmd = " && ".join([ - "mkdir -p $(@D)", - "cp $(@D)/" + b[0].replace("-", "_") + "_rollup.min.es5umd.js $(@D)/" + b[0] + ".test.min.js", - ]), - ) - for b in ES5_BUNDLES.items() + ES5_GLOBAL_BUNDLES.items() -] - -# Extract and rename each es2015 bundle to a .js and .min.js in the dist/ dir -[ - genrule( - name = b + "-dist", - srcs = [ - b.replace("-", "_") + "_rollup.umd.js", - b.replace("-", "_") + "_rollup.min.umd.js", - ], - outs = [ - b + ".js", - b + ".min.js", - ], - cmd = " && ".join([ - "mkdir -p $(@D)", - # remove the last line '//# sourceMappingURL=b[0].umd.js.map' because we don't release - # source map for now - "sed '$$d' $(@D)/" + b.replace("-", "_") + "_rollup.umd.js > $(@D)/" + b + ".js", - "cp $(@D)/" + b.replace("-", "_") + "_rollup.min.umd.js $(@D)/" + b + ".min.js", - ]), - ) - for b in ES2015_BUNDLES -] - -# Extract and rename each es5 bundle to a .js and .min.js in the dist/ dir -[ - genrule( - name = b + "-dist-test", - srcs = [ - b.replace("-", "_") + "_rollup.min.umd.js", - ], - outs = [ - b + ".test.min.js", - ], - cmd = " && ".join([ - "mkdir -p $(@D)", - "cp $(@D)/" + b.replace("-", "_") + "_rollup.min.umd.js $(@D)/" + b + ".test.min.js", - ]), - ) - for b in ES2015_BUNDLES -] +generate_dist( + bundles = ES2015_BUNDLES.items(), + module = "", +) diff --git a/packages/zone.js/dist/tools.bzl b/packages/zone.js/dist/tools.bzl new file mode 100644 index 0000000000..5c2d0bc2bb --- /dev/null +++ b/packages/zone.js/dist/tools.bzl @@ -0,0 +1,35 @@ +"""Provides the rollup and dist file generation macro.""" + +load("//tools:defaults.bzl", "rollup_bundle") + +def zone_rollup_bundle(config_file, bundles): + for b in bundles: + rollup_bundle( + name = b[0] + "-rollup", + config_file = config_file, + entry_point = b[1] + ".ts", + sourcemap = "false", + deps = [ + "//packages/zone.js/lib", + "@npm//rollup-plugin-commonjs", + "@npm//rollup-plugin-node-resolve", + ], + ) + +def generate_dist(module, bundles): + for b in bundles: + native.genrule( + name = b[0] + "-dist", + srcs = [ + b[0] + "-rollup." + module + "umd.js", + b[0] + "-rollup.min." + module + "umd.js", + ], + outs = [ + b[0] + ".js", + b[0] + ".min.js", + ], + cmd = " && ".join([ + "cp $(@D)/" + b[0] + "-rollup." + module + "umd.js $(@D)/" + b[0] + ".js", + "cp $(@D)/" + b[0] + "-rollup.min." + module + "umd.js $(@D)/" + b[0] + ".min.js", + ]), + ) diff --git a/packages/zone.js/test/BUILD.bazel b/packages/zone.js/test/BUILD.bazel index b9da4f9466..c00dff0422 100644 --- a/packages/zone.js/test/BUILD.bazel +++ b/packages/zone.js/test/BUILD.bazel @@ -278,15 +278,15 @@ test_deps = [ test_entry_point = ":browser_entry_point.ts" karma_tests = { - "browser_test": ["//packages/zone.js/dist:zone-testing-bundle-dist-dev-test"], + "browser_test": ["//packages/zone.js/dist:zone-testing-bundle.js"], "browser_green_test": [ - "//packages/zone.js/dist:zone-evergreen-dist-dev-test", - "//packages/zone.js/dist:zone-testing-dist-dev-test", + "//packages/zone.js/dist:zone-evergreen.js", + "//packages/zone.js/dist:zone-testing.js", ], "browser_legacy_test": [ - "//packages/zone.js/dist:zone-legacy-dist-dev-test", - "//packages/zone.js/dist:zone-evergreen-dist-dev-test", - "//packages/zone.js/dist:zone-testing-dist-dev-test", + "//packages/zone.js/dist:zone-legacy.js", + "//packages/zone.js/dist:zone-evergreen.js", + "//packages/zone.js/dist:zone-testing.js", ], } @@ -305,8 +305,8 @@ karma_test( karma_test( name = "browser_shadydom", bootstraps = {"browser_shadydom": [ - "//packages/zone.js/dist:zone-testing-bundle-dist-dev-test", - "//packages/zone.js/dist:webapis-shadydom-dist-dev-test", + "//packages/zone.js/dist:zone-testing-bundle.js", + "//packages/zone.js/dist:webapis-shadydom.js", ]}, ci = False, env_deps = [ diff --git a/packages/zone.js/test/karma_test.bzl b/packages/zone.js/test/karma_test.bzl index 8a96a9e232..bb4b9b6519 100644 --- a/packages/zone.js/test/karma_test.bzl +++ b/packages/zone.js/test/karma_test.bzl @@ -11,6 +11,7 @@ def karma_test_prepare(name, env_srcs, env_deps, env_entry_point, test_srcs, tes rollup_bundle( name = name + "_env_rollup", testonly = True, + sourcemap = "false", entry_point = env_entry_point, deps = [ ":" + name + "_env", @@ -18,19 +19,6 @@ def karma_test_prepare(name, env_srcs, env_deps, env_entry_point, test_srcs, tes "@npm//rollup-plugin-node-resolve", ], ) - native.genrule( - name = name + "_env_trim_map", - testonly = True, - srcs = [ - ":" + name + "_env_rollup.umd", - ], - outs = [ - name + "_env_rollup_trim_map.js", - ], - cmd = " && ".join([ - "cp $(@D)/" + name + "_env_rollup.umd.js $@", - ]), - ) ts_library( name = name + "_test", testonly = True, @@ -40,6 +28,7 @@ def karma_test_prepare(name, env_srcs, env_deps, env_entry_point, test_srcs, tes rollup_bundle( name = name + "_rollup", testonly = True, + sourcemap = "false", entry_point = test_entry_point, config_file = "//packages/zone.js:rollup-es5.config.js", deps = [ @@ -48,19 +37,6 @@ def karma_test_prepare(name, env_srcs, env_deps, env_entry_point, test_srcs, tes "@npm//rollup-plugin-node-resolve", ], ) - native.genrule( - name = name + "_trim_map", - testonly = True, - srcs = [ - ":" + name + "_rollup.umd", - ], - outs = [ - name + "_rollup_trim_map.js", - ], - cmd = " && ".join([ - "cp $(@D)/" + name + "_rollup.umd.js $@", - ]), - ) def karma_test(name, env_srcs, env_deps, env_entry_point, test_srcs, test_deps, test_entry_point, bootstraps, ci): first = True @@ -71,15 +47,15 @@ def karma_test(name, env_srcs, env_deps, env_entry_point, test_srcs, test_deps, first = False karma_test_prepare(name, env_srcs, env_deps, env_entry_point, test_srcs, test_deps, test_entry_point) _karma_test_required_dist_files = [ - "//packages/zone.js/dist:task-tracking-dist-dev-test", - "//packages/zone.js/dist:wtf-dist-dev-test", - "//packages/zone.js/dist:webapis-notification-dist-dev-test", - "//packages/zone.js/dist:webapis-media-query-dist-dev-test", - "//packages/zone.js/dist:zone-patch-canvas-dist-dev-test", - "//packages/zone.js/dist:zone-patch-fetch-dist-dev-test", - "//packages/zone.js/dist:zone-patch-resize-observer-dist-dev-test", - "//packages/zone.js/dist:zone-patch-user-media-dist-dev-test", - ":" + name + "_trim_map", + "//packages/zone.js/dist:task-tracking.js", + "//packages/zone.js/dist:wtf.js", + "//packages/zone.js/dist:webapis-notification.js", + "//packages/zone.js/dist:webapis-media-query.js", + "//packages/zone.js/dist:zone-patch-canvas.js", + "//packages/zone.js/dist:zone-patch-fetch.js", + "//packages/zone.js/dist:zone-patch-resize-observer.js", + "//packages/zone.js/dist:zone-patch-user-media.js", + ":" + name + "_rollup.umd", ] karma_web_test_suite( @@ -88,7 +64,7 @@ def karma_test(name, env_srcs, env_deps, env_entry_point, test_srcs, test_deps, "fake_entry.js", ], bootstrap = [ - ":" + name + "_env_trim_map", + ":" + name + "_env_rollup.umd", ] + bootstrap + _karma_test_required_dist_files, browsers = ["//tools/browsers:chromium"], @@ -111,8 +87,8 @@ def karma_test(name, env_srcs, env_deps, env_entry_point, test_srcs, test_deps, ], bootstrap = [ ":saucelabs.js", - ":" + name + "_env_trim_map", - "//packages/zone.js/dist:zone-testing-bundle-dist-test", + ":" + name + "_env_rollup.umd", + "//packages/zone.js/dist:zone-testing-bundle.min.js", ] + _karma_test_required_dist_files, browsers = ["//tools/browsers:chromium"], config_file = "//:karma-js.conf.js", diff --git a/tools/defaults.bzl b/tools/defaults.bzl index 170233b267..1fb341336d 100644 --- a/tools/defaults.bzl +++ b/tools/defaults.bzl @@ -324,7 +324,7 @@ def ng_rollup_bundle(deps = [], **kwargs): **kwargs ) -def rollup_bundle(name, testonly = False, **kwargs): +def rollup_bundle(name, testonly = False, sourcemap = "true", **kwargs): """A drop in replacement for the rules nodejs [legacy rollup_bundle]. Runs [rollup_bundle], [terser_minified] and [babel] for downleveling to es5 @@ -356,7 +356,7 @@ def rollup_bundle(name, testonly = False, **kwargs): } # es2015 - _rollup_bundle(name = name + ".es2015", testonly = testonly, format = "iife", sourcemap = "true", **kwargs) + _rollup_bundle(name = name + ".es2015", testonly = testonly, format = "iife", sourcemap = sourcemap, **kwargs) terser_minified(name = name + ".min.es2015", testonly = testonly, src = name + ".es2015", **common_terser_args) native.filegroup(name = name + ".min.es2015.js", testonly = testonly, srcs = [name + ".min.es2015"]) terser_minified(name = name + ".min_debug.es2015", testonly = testonly, src = name + ".es2015", **common_terser_args) @@ -391,7 +391,7 @@ def rollup_bundle(name, testonly = False, **kwargs): native.filegroup(name = name + ".min_debug.js", testonly = testonly, srcs = [name + ".min_debug"]) # umd - _rollup_bundle(name = name + ".umd", testonly = testonly, format = "umd", sourcemap = "true", **kwargs) + _rollup_bundle(name = name + ".umd", testonly = testonly, format = "umd", sourcemap = sourcemap, **kwargs) terser_minified(name = name + ".min.umd", testonly = testonly, src = name + ".umd", **common_terser_args) native.filegroup(name = name + ".min.umd.js", testonly = testonly, srcs = [name + ".min.umd"]) tsc(