Skip to content

Commit 099955b

Browse files
alan-agius4alxhub
authored andcommitted
build: remove Sourcemaps from Schematics bundles (angular#57545)
This commit reduces the bundle size of `@angular/core` by 19.5 MB by excluding sourcemaps from the schematics. Since the `esbuild` rule doesn't allow disabling sourcemaps directly, we work around this by setting the sourcemaps to `external`. Afterward, we filter the output to include only the `.js` files. PR Close angular#57545
1 parent 9779227 commit 099955b

File tree

8 files changed

+33
-14
lines changed

8 files changed

+33
-14
lines changed

packages/core/schematics/migrations/after-render-phase/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//tools:defaults.bzl", "esbuild", "ts_library")
1+
load("//tools:defaults.bzl", "esbuild_no_sourcemaps", "ts_library")
22

33
package(
44
default_visibility = [
@@ -20,7 +20,7 @@ ts_library(
2020
],
2121
)
2222

23-
esbuild(
23+
esbuild_no_sourcemaps(
2424
name = "bundle",
2525
entry_point = ":index.ts",
2626
external = [

packages/core/schematics/migrations/http-providers/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//tools:defaults.bzl", "esbuild", "ts_library")
1+
load("//tools:defaults.bzl", "esbuild_no_sourcemaps", "ts_library")
22

33
package(
44
default_visibility = [
@@ -20,7 +20,7 @@ ts_library(
2020
],
2121
)
2222

23-
esbuild(
23+
esbuild_no_sourcemaps(
2424
name = "bundle",
2525
entry_point = ":index.ts",
2626
external = [

packages/core/schematics/migrations/invalid-two-way-bindings/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//tools:defaults.bzl", "esbuild", "ts_library")
1+
load("//tools:defaults.bzl", "esbuild_no_sourcemaps", "ts_library")
22

33
package(
44
default_visibility = [
@@ -21,7 +21,7 @@ ts_library(
2121
],
2222
)
2323

24-
esbuild(
24+
esbuild_no_sourcemaps(
2525
name = "bundle",
2626
entry_point = ":index.ts",
2727
external = [

packages/core/schematics/ng-generate/control-flow-migration/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//tools:defaults.bzl", "esbuild", "ts_library")
1+
load("//tools:defaults.bzl", "esbuild_no_sourcemaps", "ts_library")
22

33
package(
44
default_visibility = [
@@ -26,7 +26,7 @@ ts_library(
2626
],
2727
)
2828

29-
esbuild(
29+
esbuild_no_sourcemaps(
3030
name = "bundle",
3131
entry_point = ":index.ts",
3232
external = [

packages/core/schematics/ng-generate/inject-migration/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//tools:defaults.bzl", "esbuild", "ts_library")
1+
load("//tools:defaults.bzl", "esbuild_no_sourcemaps", "ts_library")
22

33
package(
44
default_visibility = [
@@ -25,7 +25,7 @@ ts_library(
2525
],
2626
)
2727

28-
esbuild(
28+
esbuild_no_sourcemaps(
2929
name = "bundle",
3030
entry_point = ":index.ts",
3131
external = [

packages/core/schematics/ng-generate/route-lazy-loading/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//tools:defaults.bzl", "esbuild", "ts_library")
1+
load("//tools:defaults.bzl", "esbuild_no_sourcemaps", "ts_library")
22

33
package(
44
default_visibility = [
@@ -27,7 +27,7 @@ ts_library(
2727
],
2828
)
2929

30-
esbuild(
30+
esbuild_no_sourcemaps(
3131
name = "bundle",
3232
entry_point = ":index.ts",
3333
external = [

packages/core/schematics/ng-generate/standalone-migration/BUILD.bazel

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
load("//tools:defaults.bzl", "esbuild", "ts_library")
1+
load("//tools:defaults.bzl", "esbuild_no_sourcemaps", "ts_library")
22

33
package(
44
default_visibility = [
@@ -27,7 +27,7 @@ ts_library(
2727
],
2828
)
2929

30-
esbuild(
30+
esbuild_no_sourcemaps(
3131
name = "bundle",
3232
entry_point = ":index.ts",
3333
external = [

tools/defaults.bzl

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ load("@npm//@bazel/protractor:index.bzl", _protractor_web_test_suite = "protract
1010
load("@npm//typescript:index.bzl", "tsc")
1111
load("@npm//@angular/build-tooling/bazel/app-bundling:index.bzl", _app_bundle = "app_bundle")
1212
load("@npm//@angular/build-tooling/bazel/http-server:index.bzl", _http_server = "http_server")
13+
load("@npm//@angular/build-tooling/bazel:filter_outputs.bzl", "filter_outputs")
1314
load("@npm//@angular/build-tooling/bazel/karma:index.bzl", _karma_web_test = "karma_web_test", _karma_web_test_suite = "karma_web_test_suite")
1415
load("@npm//@angular/build-tooling/bazel/api-golden:index.bzl", _api_golden_test = "api_golden_test", _api_golden_test_npm_package = "api_golden_test_npm_package")
1516
load("@npm//@angular/build-tooling/bazel:extract_js_module_output.bzl", "extract_js_module_output")
@@ -650,6 +651,24 @@ def esbuild(args = None, **kwargs):
650651
**kwargs
651652
)
652653

654+
def esbuild_no_sourcemaps(name, **kwargs):
655+
esbuild_target_name = "%s.with-sourcemap" % name
656+
657+
# Unlike linked, when using external the .js output file does not contain a //# sourceMappingURL= comment.
658+
# See: https://esbuild.github.io/api/#sourcemap
659+
esbuild(
660+
name = esbuild_target_name,
661+
sourcemap = "external",
662+
output = "%s.js" % name,
663+
**kwargs
664+
)
665+
666+
filter_outputs(
667+
name = name,
668+
target = esbuild_target_name,
669+
filters = ["%s.js" % name],
670+
)
671+
653672
def esbuild_checked_in(name, **kwargs):
654673
esbuild_esm_bundle(
655674
name = "%s_generated" % name,

0 commit comments

Comments
 (0)