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 = [
|
||||
"//packages/common",
|
||||
"//packages/core",
|
||||
"//packages/core/test/bundling/util:reflect_metadata",
|
||||
],
|
||||
)
|
||||
|
||||
|
@ -31,6 +32,7 @@ ng_rollup_bundle(
|
|||
":todo",
|
||||
"//packages/common",
|
||||
"//packages/core",
|
||||
"//packages/core/test/bundling/util:reflect_metadata",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
* 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 {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';
|
||||
|
|
|
@ -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)';\" > $@",
|
||||
)
|
|
@ -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…
Reference in New Issue