From 65ef71003d83275be45f66e026a21971c7daccb5 Mon Sep 17 00:00:00 2001 From: Oussama Ben Brahim Date: Tue, 6 Feb 2018 00:37:05 +0100 Subject: [PATCH] feat(core): set preserveWhitespaces to false by default Fixes #22027 --- aio/content/guide/aot-compiler.md | 6 ++---- aio/src/tsconfig.app.json | 5 +---- packages/bazel/src/ng_module.bzl | 3 +-- packages/compiler-cli/src/transformers/api.ts | 4 ++-- packages/compiler/src/config.ts | 2 +- packages/compiler/test/config_spec.ts | 11 ++++++++++- packages/core/src/metadata/directives.ts | 12 ++++++------ packages/core/test/debug/debug_node_spec.ts | 4 +--- packages/core/test/linker/integration_spec.ts | 4 ++-- .../ts/e2e_test/ngComponentOutlet_spec.ts | 2 +- .../examples/common/ngIf/ts/e2e_test/ngIf_spec.ts | 6 +++--- .../test/testing_public_browser_spec.ts | 2 +- .../platform-browser/test/testing_public_spec.ts | 2 +- packages/router/test/integration.spec.ts | 6 +++--- 14 files changed, 35 insertions(+), 34 deletions(-) diff --git a/aio/content/guide/aot-compiler.md b/aio/content/guide/aot-compiler.md index bfb060ee0b1c9b..1183652d579929 100644 --- a/aio/content/guide/aot-compiler.md +++ b/aio/content/guide/aot-compiler.md @@ -92,7 +92,7 @@ You can control your app compilation by providing template compiler options in t }, "angularCompilerOptions": { "fullTemplateTypeCheck": true, - "preserveWhiteSpaces": false, + "preserveWhiteSpaces": true, ... } } @@ -234,9 +234,7 @@ done manually. ### *preserveWhitespaces* This option tells the compiler whether to remove blank text nodes from compiled templates. -This option is `true` by default. - -*Note*: It is recommended to set this explicitly to `false` as it emits smaller template factory modules and might be set to `false` by default in the future. +This option is `false` by default, which results in smaller emitted template factory modules. ### *allowEmptyCodegenFiles* diff --git a/aio/src/tsconfig.app.json b/aio/src/tsconfig.app.json index f92893cafd0e75..c486ae3a7c819e 100644 --- a/aio/src/tsconfig.app.json +++ b/aio/src/tsconfig.app.json @@ -12,8 +12,5 @@ "test.ts", "test-specs.ts", "**/*.spec.ts" - ], - "angularCompilerOptions": { - "preserveWhitespaces": false - } + ] } diff --git a/packages/bazel/src/ng_module.bzl b/packages/bazel/src/ng_module.bzl index 2e0aca1e74d0a8..388d17c3463104 100644 --- a/packages/bazel/src/ng_module.bzl +++ b/packages/bazel/src/ng_module.bzl @@ -76,8 +76,7 @@ def _ngc_tsconfig(ctx, files, srcs, **kwargs): "enableSummariesForJit": True, "fullTemplateTypeCheck": ctx.attr.type_check, # FIXME: wrong place to de-dupe - "expectedOut": depset([o.path for o in expected_outs]).to_list(), - "preserveWhitespaces": False, + "expectedOut": depset([o.path for o in expected_outs]).to_list() } }) diff --git a/packages/compiler-cli/src/transformers/api.ts b/packages/compiler-cli/src/transformers/api.ts index 6679592f0d153f..b428f8fe0fff3b 100644 --- a/packages/compiler-cli/src/transformers/api.ts +++ b/packages/compiler-cli/src/transformers/api.ts @@ -148,8 +148,8 @@ export interface CompilerOptions extends ts.CompilerOptions { // How to handle missing messages i18nInMissingTranslations?: 'error'|'warning'|'ignore'; - // Whether to remove blank text nodes from compiled templates. It is `true` by default - // in Angular 5 and will be re-visited in Angular 6. + // Whether to remove blank text nodes from compiled templates. It is `false` by default starting + // from Angular 6. preserveWhitespaces?: boolean; /** generate all possible generated files */ diff --git a/packages/compiler/src/config.ts b/packages/compiler/src/config.ts index 0826e3c1ab8ea7..eb0e7cddc708e4 100644 --- a/packages/compiler/src/config.ts +++ b/packages/compiler/src/config.ts @@ -46,6 +46,6 @@ export class CompilerConfig { } export function preserveWhitespacesDefault( - preserveWhitespacesOption: boolean | null, defaultSetting = true): boolean { + preserveWhitespacesOption: boolean | null, defaultSetting = false): boolean { return preserveWhitespacesOption === null ? defaultSetting : preserveWhitespacesOption; } diff --git a/packages/compiler/test/config_spec.ts b/packages/compiler/test/config_spec.ts index 6d164afc6389dd..459e80cf60b110 100644 --- a/packages/compiler/test/config_spec.ts +++ b/packages/compiler/test/config_spec.ts @@ -7,7 +7,7 @@ */ import {MissingTranslationStrategy} from '@angular/core'; -import {CompilerConfig} from '../src/config'; +import {CompilerConfig, preserveWhitespacesDefault} from '../src/config'; { describe('compiler config', () => { @@ -16,4 +16,13 @@ import {CompilerConfig} from '../src/config'; expect(config.missingTranslation).toEqual(MissingTranslationStrategy.Error); }); }); + + describe('preserveWhitespacesDefault', () => { + it('should return the default `false` setting when no preserveWhitespacesOption are provided', + () => { expect(preserveWhitespacesDefault(null)).toEqual(false); }); + it('should return the preserveWhitespacesOption when provided as a parameter', () => { + expect(preserveWhitespacesDefault(true)).toEqual(true); + expect(preserveWhitespacesDefault(false)).toEqual(false); + }); + }); } diff --git a/packages/core/src/metadata/directives.ts b/packages/core/src/metadata/directives.ts index 43f340c60a97fd..217caa068b5a98 100644 --- a/packages/core/src/metadata/directives.ts +++ b/packages/core/src/metadata/directives.ts @@ -693,13 +693,13 @@ export interface Component extends Directive { * - text nodes are left as-is inside HTML tags where whitespaces are significant (ex. `
`,
    *   `