Files
Paul Gschwendtner d977701a43 feat(bazel): allow for custom conditions to be set in ng_package targets (#43764)
The APF v13 `ng_package` rule will generate the `exports` field if not
set. Currently it allows for additional subpath entries to be configured
manually. The packager does not allow for custom conditions in subpath
exports which are auto-generated.

This is sometimes useful and necessary though. e.g. in Angular Material,
we also need to expose the index Sass file through a `sass` conditional
that the Webpack Sass loader will pick up. For this, the packager needs
to support manual additional conditions (as long as they do not
conflict).

PR Close #43764
2021-10-07 16:50:50 +00:00

61 lines
1.5 KiB
Python

load("//tools:defaults.bzl", "ng_module", "ng_package", "pkg_npm")
package(default_visibility = ["//packages/bazel/test:__subpackages__"])
ng_module(
name = "example",
srcs = glob(["*.ts"]),
module_name = "example",
deps = [
"//packages/bazel/test/ng_package/example/secondary",
"@npm//@types",
],
)
ng_package(
name = "npm_package",
srcs = [
"_index.scss",
"package.json",
"some-file.txt",
],
data = [
":arbitrary_bin_file",
":arbitrary_genfiles_file",
":extra-styles.css",
":logo.png",
],
nested_packages = [
":arbitrary_npm_package",
],
primary_bundle_name = "waffels",
deps = [
":example",
"//packages/bazel/test/ng_package/example/a11y",
"//packages/bazel/test/ng_package/example/imports",
"//packages/bazel/test/ng_package/example/secondary",
],
)
# Use a genrule to create a file in bazel-genfiles to ensure that the genfiles output of
# a rule can be passed through to the `data` of ng_package.
genrule(
name = "arbitrary_genfiles_file",
outs = ["arbitrary_genfiles.txt"],
cmd = "echo Hello > $@",
)
# Use a genrule to create a file in bazel-bin to ensure that the bin output of
# a rule can be passed through to the `data` of ng_package.
genrule(
name = "arbitrary_bin_file",
outs = ["arbitrary_bin.txt"],
cmd = "echo World > $@",
output_to_bindir = True,
)
pkg_npm(
name = "arbitrary_npm_package",
srcs = [":arbitrary-npm-package-main.js"],
)