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`
-
+