mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
build: separate zone.js dependencies into their own directory (#63425)
Separate out zone.js dependencies PR Close #63425
This commit is contained in:
committed by
Andrew Scott
parent
38de2b3ad4
commit
fe349827ef
@@ -65,4 +65,6 @@ packages/zone.js/test/typings/node_modules
|
||||
packages/upgrade/node_modules
|
||||
packages/benchpress/node_modules
|
||||
packages/service-worker/node_modules
|
||||
packages/zone.js/test/typings/node_modules
|
||||
packages/zone.js/node_modules
|
||||
tools/bazel/rules_angular_store/node_modules
|
||||
|
||||
@@ -157,8 +157,6 @@ jobs:
|
||||
cp dist/bin/packages/zone.js/npm_package/bundles/zone-patch-electron.umd.js ./packages/zone.js/test/extra/
|
||||
cp dist/bin/packages/zone.js/test/closure/zone.closure.js ./packages/zone.js/build/test/zone.closure.mjs
|
||||
|
||||
# Install
|
||||
- run: pnpm -C packages/zone.js install --frozen-lockfile
|
||||
# Run zone.js tools tests
|
||||
- run: pnpm -C packages/zone.js promisefinallytest
|
||||
- run: pnpm -C packages/zone.js jest:test
|
||||
|
||||
@@ -1,9 +1,13 @@
|
||||
load("@npm//:defs.bzl", "npm_link_all_packages")
|
||||
load("//packages/zone.js:bundles.bzl", "BUNDLES_ENTRY_POINTS")
|
||||
load("//packages/zone.js:tools.bzl", "generate_rollup_bundle")
|
||||
load("//tools:defaults.bzl", "npm_package", "ts_config", "ts_project")
|
||||
load("//packages/zone.js:tools.bzl", "generate_rollup_bundle", "npm_package", "ts_config", "ts_project")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
npm_link_all_packages(
|
||||
name = "node_modules",
|
||||
)
|
||||
|
||||
ts_config(
|
||||
name = "tsconfig_build",
|
||||
src = "tsconfig.json",
|
||||
@@ -14,8 +18,8 @@ ts_config(
|
||||
src = "tsconfig-test.json",
|
||||
deps = [
|
||||
":tsconfig_build",
|
||||
"//:node_modules/@types/jasmine",
|
||||
"//:node_modules/@types/node",
|
||||
"//packages/zone.js:node_modules/@types/jasmine",
|
||||
"//packages/zone.js:node_modules/@types/node",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -49,6 +53,7 @@ generate_rollup_bundle(
|
||||
)
|
||||
|
||||
npm_package(
|
||||
name = "npm_package",
|
||||
srcs = [
|
||||
"CHANGELOG.md",
|
||||
"README.md",
|
||||
@@ -74,3 +79,8 @@ npm_package(
|
||||
package = "zone.js",
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
||||
|
||||
alias(
|
||||
name = "pkg",
|
||||
actual = ":npm_package",
|
||||
)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
load("//tools:defaults.bzl", "copy_to_bin", "ts_project")
|
||||
load("//packages/zone.js:tools.bzl", "copy_to_bin", "ts_project")
|
||||
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
@@ -65,8 +65,8 @@ ts_project(
|
||||
),
|
||||
deps = [
|
||||
":zone_d_ts",
|
||||
"//:node_modules/@types/jasmine",
|
||||
"//:node_modules/@types/node",
|
||||
"//:node_modules/rxjs",
|
||||
"//packages/zone.js:node_modules/@types/jasmine",
|
||||
"//packages/zone.js:node_modules/@types/node",
|
||||
"//packages/zone.js:node_modules/rxjs",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -8,14 +8,28 @@
|
||||
"fesm2015": "./fesm2015/zone.js",
|
||||
"typings": "./zone.d.ts",
|
||||
"devDependencies": {
|
||||
"@externs/nodejs": "^1.5.0",
|
||||
"@types/node": "^10.9.4",
|
||||
"@csstools/css-calc": "2.1.4",
|
||||
"@csstools/css-color-parser": "3.1.0",
|
||||
"@externs/nodejs": "1.5.0",
|
||||
"@types/jasmine": "5.1.9",
|
||||
"@types/node": "24.3.0",
|
||||
"@types/shelljs": "0.8.17",
|
||||
"@types/systemjs": "6.15.3",
|
||||
"bluebird": "3.7.2",
|
||||
"domino": "https://github.com/angular/domino.git#93e720f143d0296dd2726ffbcf4fc12283363a7b",
|
||||
"jest": "^30.0.0",
|
||||
"jest-environment-jsdom": "^30.0.0",
|
||||
"jest-environment-node": "^30.0.0",
|
||||
"mocha": "^11.0.0",
|
||||
"esbuild-plugin-umd-wrapper": "3.0.0",
|
||||
"jest-environment-jsdom": "30.1.1",
|
||||
"jest-environment-node": "30.1.1",
|
||||
"jest": "30.1.1",
|
||||
"mocha": "11.7.1",
|
||||
"mock-require": "3.0.3",
|
||||
"jasmine": "5.9.0",
|
||||
"source-map-support": "0.5.21",
|
||||
"jasmine-core": "5.9.0",
|
||||
"jasmine-reporters": "2.5.2",
|
||||
"rxjs": "7.8.2",
|
||||
"shelljs": "0.10.0",
|
||||
"systemjs": "6.15.1",
|
||||
"tslib": "^2.3.0",
|
||||
"vitest": "^3.1.3"
|
||||
},
|
||||
|
||||
Generated
-4269
File diff suppressed because it is too large
Load Diff
@@ -1,3 +0,0 @@
|
||||
packages:
|
||||
- .
|
||||
- test/typings/
|
||||
@@ -1,7 +1,7 @@
|
||||
load("//packages/zone.js:tools.bzl", "jasmine_test", "ts_project", "zone_compatible_jasmine_test")
|
||||
load("//packages/zone.js/test:karma_test.bzl", "karma_test")
|
||||
load("//tools:defaults.bzl", "jasmine_test", "ts_project", "zone_compatible_jasmine_test")
|
||||
|
||||
package(default_visibility = ["//:__subpackages__"])
|
||||
package(default_visibility = ["//packages/zone.js:__subpackages__"])
|
||||
|
||||
exports_files([
|
||||
"assets/sample.json",
|
||||
@@ -38,7 +38,7 @@ ts_project(
|
||||
),
|
||||
deps = [
|
||||
":common_spec_util",
|
||||
"//:node_modules/rxjs",
|
||||
"//packages/zone.js:node_modules/rxjs",
|
||||
"//packages/zone.js/lib",
|
||||
],
|
||||
)
|
||||
@@ -69,12 +69,12 @@ ts_project(
|
||||
testonly = True,
|
||||
srcs = glob(["node/*.ts"]),
|
||||
deps = [
|
||||
"//:node_modules/@types/node",
|
||||
"//:node_modules/@types/shelljs",
|
||||
"//:node_modules/@types/systemjs",
|
||||
"//:node_modules/rxjs",
|
||||
"//:node_modules/shelljs",
|
||||
"//:node_modules/systemjs",
|
||||
"//packages/zone.js:node_modules/@types/node",
|
||||
"//packages/zone.js:node_modules/@types/shelljs",
|
||||
"//packages/zone.js:node_modules/@types/systemjs",
|
||||
"//packages/zone.js:node_modules/rxjs",
|
||||
"//packages/zone.js:node_modules/shelljs",
|
||||
"//packages/zone.js:node_modules/systemjs",
|
||||
"//packages/zone.js/lib",
|
||||
],
|
||||
)
|
||||
@@ -88,11 +88,11 @@ ts_project(
|
||||
],
|
||||
deps = [
|
||||
":common_spec_env",
|
||||
"//:node_modules/@types/shelljs",
|
||||
"//:node_modules/@types/systemjs",
|
||||
"//:node_modules/rxjs",
|
||||
"//:node_modules/shelljs",
|
||||
"//:node_modules/systemjs",
|
||||
"//packages/zone.js:node_modules/@types/shelljs",
|
||||
"//packages/zone.js:node_modules/@types/systemjs",
|
||||
"//packages/zone.js:node_modules/rxjs",
|
||||
"//packages/zone.js:node_modules/shelljs",
|
||||
"//packages/zone.js:node_modules/systemjs",
|
||||
"//packages/zone.js/lib",
|
||||
],
|
||||
)
|
||||
@@ -104,7 +104,7 @@ ts_project(
|
||||
"extra/bluebird.spec.ts",
|
||||
],
|
||||
deps = [
|
||||
"//:node_modules/bluebird",
|
||||
"//packages/zone.js:node_modules/bluebird",
|
||||
"//packages/zone.js/lib",
|
||||
],
|
||||
)
|
||||
@@ -115,7 +115,7 @@ ts_project(
|
||||
srcs = ["node_bluebird_entry_point.init.ts"],
|
||||
deps = [
|
||||
":common_spec_env",
|
||||
"//:node_modules/bluebird",
|
||||
"//packages/zone.js:node_modules/bluebird",
|
||||
"//packages/zone.js/lib",
|
||||
"//packages/zone.js/lib:zone_d_ts",
|
||||
],
|
||||
@@ -201,7 +201,7 @@ ts_project(
|
||||
testonly = True,
|
||||
srcs = ["npm_package/npm_package.spec.ts"],
|
||||
deps = [
|
||||
"//:node_modules/@types/shelljs",
|
||||
"//packages/zone.js:node_modules/@types/shelljs",
|
||||
],
|
||||
)
|
||||
|
||||
@@ -209,7 +209,7 @@ jasmine_test(
|
||||
name = "test_npm_package",
|
||||
data = [
|
||||
":npm_package_spec_lib",
|
||||
"//:node_modules/shelljs",
|
||||
"//packages/zone.js:node_modules/shelljs",
|
||||
"//packages/zone.js:npm_package",
|
||||
],
|
||||
)
|
||||
@@ -225,11 +225,11 @@ env_deps = [
|
||||
":common_spec_util",
|
||||
":error_spec_srcs",
|
||||
"//packages/zone.js/lib:lib",
|
||||
"//:node_modules/@types/shelljs",
|
||||
"//:node_modules/@types/systemjs",
|
||||
"//:node_modules/rxjs",
|
||||
"//:node_modules/shelljs",
|
||||
"//:node_modules/systemjs",
|
||||
"//packages/zone.js:node_modules/@types/shelljs",
|
||||
"//packages/zone.js:node_modules/@types/systemjs",
|
||||
"//packages/zone.js:node_modules/rxjs",
|
||||
"//packages/zone.js:node_modules/shelljs",
|
||||
"//packages/zone.js:node_modules/systemjs",
|
||||
]
|
||||
|
||||
env_entry_point = ":browser-env-setup.ts"
|
||||
@@ -254,11 +254,11 @@ test_deps = [
|
||||
":common_spec_util",
|
||||
":error_spec_srcs",
|
||||
"//packages/zone.js/lib:lib",
|
||||
"//:node_modules/@types/shelljs",
|
||||
"//:node_modules/@types/systemjs",
|
||||
"//:node_modules/rxjs",
|
||||
"//:node_modules/shelljs",
|
||||
"//:node_modules/systemjs",
|
||||
"//packages/zone.js:node_modules/@types/shelljs",
|
||||
"//packages/zone.js:node_modules/@types/systemjs",
|
||||
"//packages/zone.js:node_modules/rxjs",
|
||||
"//packages/zone.js:node_modules/shelljs",
|
||||
"//packages/zone.js:node_modules/systemjs",
|
||||
]
|
||||
|
||||
test_entry_point = ":browser_entry_point.ts"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
load("//tools:defaults.bzl", "ts_project")
|
||||
load("//packages/zone.js:tools.bzl", "ts_project")
|
||||
|
||||
ts_project(
|
||||
name = "closure",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
load("//tools:defaults.bzl", "esbuild", "ts_project", "web_test")
|
||||
load("//packages/zone.js:tools.bzl", "esbuild", "ts_project", "web_test")
|
||||
|
||||
def karma_test_prepare(name, env_srcs, env_deps, env_entry_point, test_srcs, test_deps, test_entry_point):
|
||||
ts_project(
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"domino": "https://github.com/angular/domino.git#93e720f143d0296dd2726ffbcf4fc12283363a7b",
|
||||
"zone.js": "link:../../../../dist/bin/packages/zone.js/npm_package"
|
||||
"zone.js": "workspace:*"
|
||||
},
|
||||
"devDependencies": {
|
||||
"typescript": "5.9.2"
|
||||
|
||||
@@ -15,5 +15,5 @@
|
||||
"strict": true,
|
||||
"lib": ["es5", "dom", "es2015.collection", "es2015.iterable", "es2015.promise"]
|
||||
},
|
||||
"files": ["./type.test.ts", "./node_modules/zone.js/zone.d.ts"]
|
||||
"files": ["./type.test.ts", "./node_modules/zone.js/zone.ts"]
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
load("//tools:defaults.bzl", "jasmine_test", "ts_project")
|
||||
load("//packages/zone.js:tools.bzl", "jasmine_test", "ts_project")
|
||||
|
||||
ts_project(
|
||||
name = "patched_init",
|
||||
|
||||
@@ -1,7 +1,53 @@
|
||||
"""Provides the rollup and dist file generation macro."""
|
||||
|
||||
load("@aspect_bazel_lib//lib:copy_to_bin.bzl", _copy_to_bin = "copy_to_bin")
|
||||
load("@aspect_rules_esbuild//esbuild:defs.bzl", _esbuild = "esbuild")
|
||||
load("@aspect_rules_js//npm:defs.bzl", _npm_package = "npm_package")
|
||||
load("@aspect_rules_ts//ts:defs.bzl", _ts_config = "ts_config")
|
||||
load("@devinfra//bazel/jasmine:jasmine.bzl", _jasmine_test = "jasmine_test")
|
||||
load("@devinfra//bazel/spec-bundling:index.bzl", "spec_bundle")
|
||||
load("@devinfra//bazel/ts_project:index.bzl", "strict_deps_test")
|
||||
load("@rules_angular//src/ts_project:index.bzl", _ts_project = "ts_project")
|
||||
load("@rules_browsers//wtr:index.bzl", "wtr_test")
|
||||
load("//packages/zone.js/tools:zone_bundle.bzl", "zone_bundle")
|
||||
|
||||
copy_to_bin = _copy_to_bin
|
||||
esbuild = _esbuild
|
||||
ts_config = _ts_config
|
||||
npm_package = _npm_package
|
||||
|
||||
def ts_project(
|
||||
name,
|
||||
deps = [],
|
||||
srcs = [],
|
||||
source_map = True,
|
||||
testonly = False,
|
||||
tsconfig = None,
|
||||
**kwargs):
|
||||
if tsconfig == None:
|
||||
if native.package_name().startswith("packages/zone.js"):
|
||||
tsconfig = "//packages/zone.js:tsconfig_test" if testonly else "//packages/zone.js:tsconfig_build"
|
||||
else:
|
||||
fail("Failing... a tsconfig value must be provided.")
|
||||
|
||||
_ts_project(
|
||||
name,
|
||||
srcs = srcs,
|
||||
deps = deps,
|
||||
declaration = True,
|
||||
source_map = source_map,
|
||||
testonly = testonly,
|
||||
tsconfig = tsconfig,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
strict_deps_test(
|
||||
name = "%s_deps" % name,
|
||||
srcs = srcs,
|
||||
tsconfig = tsconfig,
|
||||
deps = deps,
|
||||
)
|
||||
|
||||
def copy_dist(module_name, module_format, output_module_name, suffix, umd):
|
||||
umd_output = umd
|
||||
suffix_output = suffix
|
||||
@@ -81,3 +127,70 @@ def generate_dist(bundles, output_format, umd):
|
||||
suffix = "min.",
|
||||
umd = umd,
|
||||
)
|
||||
|
||||
def web_test(name, tags = [], deps = [], bootstrap = [], tsconfig = "//packages/zone.js:tsconfig_build", **kwargs):
|
||||
spec_bundle(
|
||||
name = "%s_bundle" % name,
|
||||
testonly = True,
|
||||
srcs = [tsconfig],
|
||||
tsconfig = tsconfig,
|
||||
bootstrap = bootstrap,
|
||||
deps = deps,
|
||||
tags = [
|
||||
"manual",
|
||||
],
|
||||
config = {
|
||||
"resolveExtensions": [".js", ".mjs"],
|
||||
},
|
||||
platform = "browser",
|
||||
external = kwargs.pop("external", []),
|
||||
)
|
||||
|
||||
wtr_test(
|
||||
name = name,
|
||||
deps = [":%s_bundle" % name] + kwargs.pop("data", []),
|
||||
tags = tags,
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def jasmine_test(name, fixed_args = [], **kwargs):
|
||||
all_fixed_args = [
|
||||
# Escape so that the `js_binary` launcher triggers Bash expansion.
|
||||
"'**/*+(.|_)spec.js'",
|
||||
"'**/*+(.|_)spec.mjs'",
|
||||
"'**/*+(.|_)spec.cjs'",
|
||||
] + fixed_args
|
||||
|
||||
_jasmine_test(
|
||||
name = name,
|
||||
node_modules = "//packages/zone.js:node_modules",
|
||||
chdir = native.package_name(),
|
||||
fixed_args = all_fixed_args,
|
||||
size = kwargs.pop("size", "medium"),
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def zone_compatible_jasmine_test(name, external = [], data = [], bootstrap = [], **kwargs):
|
||||
spec_bundle(
|
||||
name = "%s_bundle" % name,
|
||||
# Specs from this attribute are filtered and will be executed. We
|
||||
# add bootstrap here for discovery of the module mappings aspect.
|
||||
deps = data + bootstrap,
|
||||
bootstrap = bootstrap,
|
||||
external = external + ["domino", "typescript"],
|
||||
platform = "node",
|
||||
config = {
|
||||
"banner": {
|
||||
"js": """import {createRequire as __cjsCompatRequire} from 'module';
|
||||
const require = __cjsCompatRequire(import.meta.url);""",
|
||||
},
|
||||
"target": ["ES2022"],
|
||||
"format": "esm",
|
||||
},
|
||||
)
|
||||
|
||||
jasmine_test(
|
||||
name = name,
|
||||
data = [":%s_bundle" % name],
|
||||
**kwargs
|
||||
)
|
||||
|
||||
@@ -55,7 +55,7 @@ js_library(
|
||||
srcs = ["umd.mjs"],
|
||||
deps = [
|
||||
":base",
|
||||
"//:node_modules/esbuild-plugin-umd-wrapper",
|
||||
"//packages/zone.js:node_modules/esbuild-plugin-umd-wrapper",
|
||||
],
|
||||
)
|
||||
|
||||
|
||||
Generated
+2212
-162
File diff suppressed because it is too large
Load Diff
@@ -23,6 +23,8 @@ packages:
|
||||
- packages/benchpress/
|
||||
- packages/service-worker/
|
||||
- packages/upgrade/
|
||||
- packages/zone.js/
|
||||
- packages/zone.js/test/typings/
|
||||
- tools/bazel/rules_angular_store/
|
||||
|
||||
allowedDeprecatedVersions:
|
||||
|
||||
@@ -72,9 +72,6 @@ def _determine_tsconfig(testonly):
|
||||
if native.package_name().startswith("packages/examples"):
|
||||
return "//packages/examples:tsconfig_test" if testonly else "//packages/examples:tsconfig_build"
|
||||
|
||||
if native.package_name().startswith("packages/zone.js"):
|
||||
return "//packages/zone.js:tsconfig_test" if testonly else "//packages/zone.js:tsconfig_build"
|
||||
|
||||
if native.package_name().startswith("packages"):
|
||||
return "//packages:tsconfig_test" if testonly else "//packages:tsconfig_build"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user