From d222c48ae6dda61ced8d2f2c500ce25edbe2ce43 Mon Sep 17 00:00:00 2001 From: Charles Lyding <19598772+clydin@users.noreply.github.com> Date: Thu, 8 Aug 2019 11:35:22 -0400 Subject: [PATCH] fix(@angular-devkit/build-angular): avoid defer attribute for Safari nomodule polyfill The polyfill will not function properly if the defer attribute is present. --- .../utilities/index-file/augment-index-html.ts | 5 ++++- tests/legacy-cli/e2e/tests/misc/support-safari-10.1.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/packages/angular_devkit/build_angular/src/angular-cli-files/utilities/index-file/augment-index-html.ts b/packages/angular_devkit/build_angular/src/angular-cli-files/utilities/index-file/augment-index-html.ts index bc1591bad662..d78fac2d45c3 100644 --- a/packages/angular_devkit/build_angular/src/angular-cli-files/utilities/index-file/augment-index-html.ts +++ b/packages/angular_devkit/build_angular/src/angular-cli-files/utilities/index-file/augment-index-html.ts @@ -150,7 +150,10 @@ export async function augmentIndexHtml(params: AugmentIndexHtmlOptions): Promise const isModuleType = moduleFiles.some(scriptPredictor); if (isNoModuleType && !isModuleType) { - attrs.push({ name: 'nomodule', value: null }, { name: 'defer', value: null }); + attrs.push({ name: 'nomodule', value: null }); + if (!script.startsWith('polyfills-nomodule-es5')) { + attrs.push({ name: 'defer', value: null }); + } } else if (isModuleType && !isNoModuleType) { attrs.push({ name: 'type', value: 'module' }); } else { diff --git a/tests/legacy-cli/e2e/tests/misc/support-safari-10.1.ts b/tests/legacy-cli/e2e/tests/misc/support-safari-10.1.ts index 325fc84ee1f6..0e7d6d333ccd 100644 --- a/tests/legacy-cli/e2e/tests/misc/support-safari-10.1.ts +++ b/tests/legacy-cli/e2e/tests/misc/support-safari-10.1.ts @@ -27,7 +27,7 @@ export default async function () { await ng('build'); await expectFileToExist('dist/test-project/polyfills-nomodule-es5.js'); await expectFileToMatch('dist/test-project/index.html', oneLineTrim` - +