test(ivy): todo app only includes reflect-metadata in JIT mode (#24677)
Previously the todo app imported reflect-metadata, since it is a dependency of JIT and the todo app tests run in both JIT and AOT modes. However, the code doesn't get tree-shaken away in AOT mode. This change adds a target //packages/core/test/bundling/util:reflect_metadata which, depending on whether the compile flag is in JIT or AOT mode, either includes reflect-metadata or is a no-op. Not including reflect-metadata gets the compressed todo bundle down to 12.5 kB. PR Close #24677
This commit is contained in:
parent
34c42836cf
commit
01e7ff682c
@ -14,6 +14,7 @@ ng_module(
|
|||||||
deps = [
|
deps = [
|
||||||
"//packages/common",
|
"//packages/common",
|
||||||
"//packages/core",
|
"//packages/core",
|
||||||
|
"//packages/core/test/bundling/util:reflect_metadata",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -31,6 +32,7 @@ ng_rollup_bundle(
|
|||||||
":todo",
|
":todo",
|
||||||
"//packages/common",
|
"//packages/common",
|
||||||
"//packages/core",
|
"//packages/core",
|
||||||
|
"//packages/core/test/bundling/util:reflect_metadata",
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* found in the LICENSE file at https://angular.io/license
|
* found in the LICENSE file at https://angular.io/license
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import 'reflect-metadata';
|
import '@angular/core/test/bundling/util/src/reflect_metadata';
|
||||||
|
|
||||||
import {CommonModule, NgForOf, NgIf} from '@angular/common';
|
import {CommonModule, NgForOf, NgIf} from '@angular/common';
|
||||||
import {Component, Injectable, IterableDiffers, NgModule, defineInjector, ɵNgOnChangesFeature as NgOnChangesFeature, ɵdefineDirective as defineDirective, ɵdirectiveInject as directiveInject, ɵinjectTemplateRef as injectTemplateRef, ɵinjectViewContainerRef as injectViewContainerRef, ɵrenderComponent as renderComponent} from '@angular/core';
|
import {Component, Injectable, IterableDiffers, NgModule, defineInjector, ɵNgOnChangesFeature as NgOnChangesFeature, ɵdefineDirective as defineDirective, ɵdirectiveInject as directiveInject, ɵinjectTemplateRef as injectTemplateRef, ɵinjectViewContainerRef as injectViewContainerRef, ɵrenderComponent as renderComponent} from '@angular/core';
|
||||||
|
22
packages/core/test/bundling/util/BUILD.bazel
Normal file
22
packages/core/test/bundling/util/BUILD.bazel
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package(default_visibility = ["//visibility:public"])
|
||||||
|
|
||||||
|
load("//tools:defaults.bzl", "ts_library")
|
||||||
|
|
||||||
|
# Either loads reflect-metadata or is a no-op, depending on whether compilation is in JIT mode.
|
||||||
|
ts_library(
|
||||||
|
name = "reflect_metadata",
|
||||||
|
srcs = [
|
||||||
|
"src/reflect_metadata_jit.ts",
|
||||||
|
"src/reflect_metadata_legacy.ts",
|
||||||
|
"src/reflect_metadata_local.ts",
|
||||||
|
":metadata_switch",
|
||||||
|
],
|
||||||
|
module_name = "@angular/core/test/bundling/util/src/reflect_metadata",
|
||||||
|
)
|
||||||
|
|
||||||
|
# See packages/core/BUILD.bazel.
|
||||||
|
genrule(
|
||||||
|
name = "metadata_switch",
|
||||||
|
outs = ["src/reflect_metadata.ts"],
|
||||||
|
cmd = "echo import \"'./reflect_metadata_$(compile)';\" > $@",
|
||||||
|
)
|
9
packages/core/test/bundling/util/src/reflect_metadata.ts
Normal file
9
packages/core/test/bundling/util/src/reflect_metadata.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
import './reflect_metadata_legacy';
|
@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
import 'reflect-metadata';
|
@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const UNUSED = true;
|
@ -0,0 +1,9 @@
|
|||||||
|
/**
|
||||||
|
* @license
|
||||||
|
* Copyright Google Inc. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Use of this source code is governed by an MIT-style license that can be
|
||||||
|
* found in the LICENSE file at https://angular.io/license
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const UNUSED = true;
|
Loading…
x
Reference in New Issue
Block a user