feat(bazel): change ng_package rule to APF v6 (#22782)

Angular Package Format v6 stops bundling files in the esm5 and esm2015
directories, now that Webpack 4 can tree-shake per-file.

Adds some missing files like package.json to make packages closer to
what we publish today.

Refactor ng_package to be a type of npm_package and re-use the packaging
action from that rule.

PR Close #22782
This commit is contained in:
Alex Eagle
2018-03-13 11:00:53 -07:00
committed by Miško Hevery
parent 6e5e819e80
commit 88b3198c80
42 changed files with 335 additions and 138 deletions
+36
View File
@@ -1,9 +1,37 @@
"""Re-export of some bazel rules with repository-wide defaults."""
load("@build_bazel_rules_nodejs//:defs.bzl", _npm_package = "npm_package")
load("@build_bazel_rules_typescript//:defs.bzl", _ts_library = "ts_library")
load("//packages/bazel:index.bzl", _ng_module = "ng_module", _ng_package = "ng_package")
DEFAULT_TSCONFIG = "//packages:tsconfig-build.json"
# Packages which are versioned together on npm
ANGULAR_SCOPED_PACKAGES = ["@angular/%s" % p for p in [
"bazel",
"core",
"common",
"compiler",
"compiler-cli",
"animations",
"platform-browser",
"platform-browser-dynamic",
"forms",
"http",
"platform-server",
"platform-webworker",
"platform-webworker-dynamic",
"upgrade",
"router",
"language-service",
"service-worker",
]]
PKG_GROUP_REPLACEMENTS = {
"\"NG_UPDATE_PACKAGE_GROUP\"": """[
%s
]""" % ",\n ".join(["\"%s\"" % s for s in ANGULAR_SCOPED_PACKAGES])
}
def ts_library(tsconfig = None, **kwargs):
if not tsconfig:
tsconfig = DEFAULT_TSCONFIG
@@ -29,4 +57,12 @@ def ng_package(name, readme_md = None, license_banner = None, stamp_data = None,
readme_md = readme_md,
license_banner = license_banner,
stamp_data = stamp_data,
replacements = PKG_GROUP_REPLACEMENTS,
**kwargs)
def npm_package(name, replacements = {}, **kwargs):
_npm_package(
name = name,
stamp_data = "//tools:stamp_data",
replacements = dict(replacements, **PKG_GROUP_REPLACEMENTS),
**kwargs)