build: update to nodejs rules 0.27 (#29210)

PR Close #29210
This commit is contained in:
Matias Niemelä
2019-03-14 19:35:00 -07:00
parent b2aadffbbc
commit fc8048ddaf
13 changed files with 104 additions and 87 deletions

View File

@ -22,7 +22,7 @@
"@angular-devkit/architect": "^0.13.4",
"@angular-devkit/core": "^7.0.4",
"@angular-devkit/schematics": "^7.3.0-rc.0",
"@bazel/typescript": "^0.26.0",
"@bazel/typescript": "^0.27.4",
"@microsoft/api-extractor": "^7.0.21",
"@schematics/angular": "^7.3.5",
"@types/node": "6.0.84",

View File

@ -16,6 +16,7 @@ nodejs_binary(
"@npm//@angular-devkit/build-optimizer",
"@npm//is-builtin-module",
"@npm//rollup",
"@npm//rollup-plugin-commonjs",
"@npm//rollup-plugin-node-resolve",
"@npm//rollup-plugin-sourcemaps",
],

View File

@ -12,10 +12,10 @@ workspace(name = "project")
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
RULES_NODEJS_VERSION = "0.26.0"
RULES_NODEJS_VERSION = "0.27.4"
http_archive(
name = "build_bazel_rules_nodejs",
sha256 = "5c86b055c57e15bf32d9009a15bcd6d8e190c41b1ff2fb18037b75e0012e4e7c",
sha256 = "251a023b6c5c5c97db1bfe24652dc19dad05f4da68f8e1821d92d911fa3f4ef4",
url = "https://github.com/bazelbuild/rules_nodejs/releases/download/%s/rules_nodejs-%s.tar.gz" % (RULES_NODEJS_VERSION, RULES_NODEJS_VERSION),
)

View File

@ -20,7 +20,7 @@ load(
"@build_bazel_rules_nodejs//:internal/rollup/rollup_bundle.bzl",
"ROLLUP_ATTRS",
"ROLLUP_DEPS_ASPECTS",
"run_uglify",
"run_terser",
"write_rollup_config",
)
load(
@ -309,13 +309,13 @@ def _ng_package_impl(ctx):
include_tslib = True,
),
)
uglify_sourcemap = run_uglify(
terser_sourcemap = run_terser(
ctx,
umd_output,
min_output,
config_name = entry_point.replace("/", "_"),
)
bundles.append(struct(js = min_output, map = uglify_sourcemap))
bundles.append(struct(js = min_output, map = terser_sourcemap))
packager_inputs = (
ctx.files.srcs +
@ -433,11 +433,6 @@ NG_PACKAGE_ATTRS = dict(NPM_PACKAGE_ATTRS, **dict(ROLLUP_ATTRS, **{
default = Label("@build_bazel_rules_nodejs//internal/rollup:rollup.config.js"),
allow_single_file = True,
),
"_uglify": attr.label(
default = Label("@build_bazel_rules_nodejs//internal/rollup:uglify"),
executable = True,
cfg = "host",
),
}))
# Angular wants these named after the entry_point,

View File

@ -21,7 +21,7 @@ load(
"ROLLUP_OUTPUTS",
"run_rollup",
"run_sourcemapexplorer",
"run_uglify",
"run_terser",
"write_rollup_config",
)
load("@build_bazel_rules_nodejs//internal/common:collect_es6_sources.bzl", collect_es2015_sources = "collect_es6_sources")
@ -101,10 +101,12 @@ def _run_tsc(ctx, input, output):
# Borrowed from bazelbuild/rules_nodejs, with the addition of brotli compression output
def _plain_rollup_bundle(ctx):
rollup_config = write_rollup_config(ctx)
run_rollup(ctx, collect_es2015_sources(ctx), rollup_config, ctx.outputs.build_es6)
_run_tsc(ctx, ctx.outputs.build_es6, ctx.outputs.build_es5)
source_map = run_uglify(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min)
run_uglify(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min_debug, debug = True)
run_rollup(ctx, collect_es2015_sources(ctx), rollup_config, ctx.outputs.build_es2015)
run_terser(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es2015_min, config_name = ctx.label.name + "es2015_min")
run_terser(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es2015_min_debug, debug = True, config_name = ctx.label.name + "es2015_min_debug")
_run_tsc(ctx, ctx.outputs.build_es2015, ctx.outputs.build_es5)
source_map = run_terser(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min)
run_terser(ctx, ctx.outputs.build_es5, ctx.outputs.build_es5_min_debug, debug = True)
umd_rollup_config = write_rollup_config(ctx, filename = "_%s_umd.rollup.conf.js", output_format = "umd")
run_rollup(ctx, collect_es2015_sources(ctx), umd_rollup_config, ctx.outputs.build_umd)
cjs_rollup_config = write_rollup_config(ctx, filename = "_%s_cjs.rollup.conf.js", output_format = "cjs")
@ -123,25 +125,44 @@ def _ng_rollup_bundle(ctx):
# We don't expect anyone to make use of this bundle yet, but it makes this rule
# compatible with rollup_bundle which allows them to be easily swapped back and
# forth.
esm2015_rollup_config = write_rollup_config(ctx, filename = "_%s.rollup_es6.conf.js")
run_rollup(ctx, collect_es2015_sources(ctx), esm2015_rollup_config, ctx.outputs.build_es6)
esm2015_rollup_config = write_rollup_config(ctx, filename = "_%s.rollup_es2015.conf.js")
esm2015_rollup_sourcemap = run_rollup(ctx, collect_es2015_sources(ctx), esm2015_rollup_config, ctx.outputs.build_es2015)
run_terser(
ctx,
ctx.outputs.build_es2015,
ctx.outputs.build_es2015_min,
config_name = ctx.label.name + "es2015_min",
comments = False,
in_source_map = esm2015_rollup_sourcemap,
)
run_terser(
ctx,
ctx.outputs.build_es2015,
ctx.outputs.build_es2015_min_debug,
config_name = ctx.label.name + "es2015_min_debug",
debug = True,
comments = False,
)
esm5_sources = flatten_esm5(ctx)
rollup_config = write_rollup_config(ctx, [BO_PLUGIN], "/".join([ctx.bin_dir.path, ctx.label.package, esm5_root_dir(ctx)]))
rollup_sourcemap = run_rollup(ctx, esm5_sources, rollup_config, ctx.outputs.build_es5)
sourcemap = run_uglify(
sourcemap = run_terser(
ctx,
ctx.outputs.build_es5,
ctx.outputs.build_es5_min,
config_name = ctx.label.name + "es5_min",
comments = False,
in_source_map = rollup_sourcemap,
)
run_uglify(
run_terser(
ctx,
ctx.outputs.build_es5,
ctx.outputs.build_es5_min_debug,
config_name = ctx.label.name + "es5_min_debug",
debug = True,
comments = False,
)

View File

@ -46,7 +46,7 @@ function addDevDependenciesToPackageJson(options: Schema) {
'@angular/upgrade': angularCoreVersion,
'@bazel/bazel': '^0.23.0',
'@bazel/ibazel': '^0.9.0',
'@bazel/karma': '^0.26.0',
'@bazel/karma': '^0.27.4',
};
const recorder = host.beginUpdate(packageJson);

View File

@ -14,7 +14,7 @@ load(
"ROLLUP_ATTRS",
"ROLLUP_DEPS_ASPECTS",
"run_rollup",
"run_uglify",
"run_terser",
"write_rollup_config",
)
load("//packages/bazel/src:esm5.bzl", "esm5_outputs_aspect", "esm5_root_dir", "flatten_esm5")
@ -41,7 +41,7 @@ def _ls_rollup_bundle(ctx):
output_format = "amd",
)
run_rollup(ctx, esm5_sources, rollup_config, ctx.outputs.build_umd)
source_map = run_uglify(ctx, ctx.outputs.build_umd, ctx.outputs.build_umd_min)
source_map = run_terser(ctx, ctx.outputs.build_umd, ctx.outputs.build_umd_min)
return DefaultInfo(files = depset([ctx.outputs.build_umd, ctx.outputs.build_umd_min, source_map]))
ls_rollup_bundle = rule(

View File

@ -26,7 +26,7 @@ genrule(
genrule(
name = "ngsw_worker_renamed",
srcs = ["//packages/service-worker/worker:ngsw_worker.es6.js"],
srcs = ["//packages/service-worker/worker:ngsw_worker.es2015.js"],
outs = ["ngsw-worker.js"],
# Remove sourcemap since this file will be served in production site
# See https://github.com/angular/angular/issues/23596