Skip to content

Attribute noModule is ignored by Safari 10 #14680

Closed
@Embraser01

Description

@Embraser01

🐞 bug report

Affected Package

The issue is caused by the use of the `nomodule` attribute in the `<script>` tag.

Is this a regression?

Yes, it was working in Angular 7

Description

The build generated by Angular v8 with both es5 and es2015 flavor cannot be loaded on Safari 10. It's caused by the fact that Safari doesn't seems to acknownledge the nomodule attribute and so, load both versions which leads to an error:

Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten. Most likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)

🔬 Minimal Reproduction

You can see a simple (no config) repo here and here, the same site deployed.

🔥 Exception or Error

You can see in the console


Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten. Most likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)

🌍 Your Environment

Angular Version: v8.0.0




     _                      _                 ____ _     ___
    / \   _ __   __ _ _   _| | __ _ _ __     / ___| |   |_ _|
   / △ \ | '_ \ / _` | | | | |/ _` | '__|   | |   | |    | |
  / ___ \| | | | (_| | |_| | | (_| | |      | |___| |___ | |
 /_/   \_\_| |_|\__, |\__,_|_|\__,_|_|       \____|_____|___|
                |___/
    

Angular CLI: 8.0.1
Node: 10.15.0
OS: win32 x64
Angular: 8.0.0
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router

Package                           Version
-----------------------------------------------------------
@angular-devkit/architect         0.800.1
@angular-devkit/build-angular     0.800.1
@angular-devkit/build-optimizer   0.800.1
@angular-devkit/build-webpack     0.800.1
@angular-devkit/core              8.0.1
@angular-devkit/schematics        8.0.1
@angular/cli                      8.0.1
@ngtools/webpack                  8.0.1
@schematics/angular               8.0.1
@schematics/update                0.800.1
rxjs                              6.4.0
typescript                        3.4.5
webpack                           4.30.0

Anything else relevant?

It seems to be related to Safari ignoring nomodule attribute.
It affect at least Safari 10.0.0 (on iOS 10.3).
I'll test on more devices but it takes some time (I test on simulator).

I also found this

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions