mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
Historically we've had to be VERY cautious about the way we import things between entry-points. That is because the `ng_package` rule bundling is subject to silently introducing code duplication, breaking singletons etc. We've had this surface a couple of times already, and dev-infra tried to help detect such cases by adding safety analysis into `ng_package`. Long-term we want to get to an approach where it's easy to simply share code between chunks. Precisely, with the upcoming `rules_js` migration, this will be necessary as we will have different import "guidelines" that would currently, before this commit, result in code duplication, or trigger our "safety check/lint". This commit prepares `ng_package` to support relative imports between entry-points, so that we only need the safety check for cross-package imports/exports. The result is that `ng_package`/APF is now smartly able to generate shared chunks for things that are needed between multiple entry-points. Yay! Note that those shared chunks still remain private, and are guarded by our `package.json` "exports"; so no new public API surface is exposed. PR Close #60241
52 lines
1 KiB
Text
52 lines
1 KiB
Text
load("//tools:defaults.bzl", "ng_package", "ts_library", "tsec_test")
|
|
|
|
package(default_visibility = ["//visibility:public"])
|
|
|
|
ts_library(
|
|
name = "compiler",
|
|
srcs = glob(
|
|
[
|
|
"*.ts",
|
|
"src/**/*.ts",
|
|
],
|
|
),
|
|
)
|
|
|
|
tsec_test(
|
|
name = "tsec_test",
|
|
target = "compiler",
|
|
tsconfig = "//packages:tsec_config",
|
|
)
|
|
|
|
ng_package(
|
|
name = "npm_package",
|
|
srcs = [
|
|
"package.json",
|
|
],
|
|
side_effect_entry_points = [
|
|
"@angular/compiler",
|
|
],
|
|
tags = [
|
|
"release-with-framework",
|
|
],
|
|
# Do not add more to this list.
|
|
# Dependencies on the full npm_package cause long re-builds.
|
|
visibility = [
|
|
"//adev:__pkg__",
|
|
"//integration:__subpackages__",
|
|
"//modules/ssr-benchmarks:__subpackages__",
|
|
"//packages/compiler-cli/integrationtest:__pkg__",
|
|
"//packages/language-service/test:__pkg__",
|
|
],
|
|
deps = [
|
|
":compiler",
|
|
],
|
|
)
|
|
|
|
filegroup(
|
|
name = "files_for_docgen",
|
|
srcs = glob([
|
|
"*.ts",
|
|
"src/**/*.ts",
|
|
]),
|
|
)
|