Angular supports most recent browsers. This includes the following specific versions:
|latest||latest||14||11||10||10||Nougat (7.0)Marshmallow (6.0)||11|
|7||7||Jelly Bean(4.1, 4.2, 4.3)|
Angular is built on the latest standards of the web platform. Targeting such a wide range of browsers is challenging because they do not support all features of modern browsers.
You compensate by loading polyfill scripts ("polyfills") for the browsers that you must support. The table below identifies most of the polyfills you might need.
The suggested polyfills are the ones that run full Angular applications. You may need additional polyfills to support features not covered by this list. Note that polyfills cannot magically transform an old, slow browser into a modern, fast one.
Angular CLI users enable polyfills through the
src/polyfills.ts file that the CLI created with your project.
The npm packages for the mandatory polyfills (such as
zone.js) were installed automatically for you when you created your project and their corresponding
import statements are ready to go. You probably won't touch these.
But if you need an optional polyfill, you'll have to install its npm package with
yarn. For example, if you need the web animations polyfill, you could install it with either of the following commands:
npm install --save web-animations-js yarn add web-animations-js
Then open the
polyfills.ts file and un-comment the corresponding
import statement as in the following example:
/** * Required to support Web Animations `@angular/platform-browser/animations`. * Needed for: All but Chrome, Firefox and Opera. http://caniuse.com/#feat=web-animation **/ import 'web-animations-js'; // Run `npm install --save web-animations-js`.
If you can't find the polyfill you want in
polyfills.ts, add it yourself, following the same pattern:
importthe file in
Non-CLI users should follow the instructions below.
These are the polyfills required to run an Angular application on each supported browser:
|Browsers (Desktop & Mobile)||Polyfills Required|
|Chrome, Firefox, Edge, Safari 9+|| |
ES7/reflect (JIT only)
|Safari 7 & 8, IE10 & 11, Android 4.1+|
Some features of Angular may require additional polyfills.
For example, the animations library relies on the standard web animation API, which is only available in Chrome and Firefox today. You'll need a polyfill to use animations in other browsers.
Here are the features which may require additional polyfills:
|Feature||Polyfill||Browsers (Desktop & Mobile)|
JIT compilation. Required to reflect for metadata.
|All current browsers. Enabled by default. Can remove If you always use AOT and only use Angular decorators.|
|All but Chrome and FirefoxNot supported in IE9|
|All but Chrome, Firefox, Edge, IE11 and Safari 10|
NgClass on SVG elements
Http when sending and receiving binary data
Below are the polyfills which are used to test the framework itself. They are a good starting point for an application.
|Intl||MIT / Unicode license||13.5KB|
* Figures are for minified and gzipped code, computed with the closure compiler.
If you aren't using the CLI, you should add your polyfill scripts directly to the host web page (
index.html), perhaps like this.
<!-- pre-zone polyfills --> <script src="node_modules/core-js/client/shim.min.js"></script> <script src="node_modules/web-animations-js/web-animations.min.js"></script> <script> /** * you can configure some zone flags which can disable zone interception for some * asynchronous activities to improve startup performance - use these options only * if you know what you are doing as it could result in hard to trace down bugs.. */ // __Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame // __Zone_disable_on_property = true; // disable patch onProperty such as onclick // __zone_symbol__BLACK_LISTED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames </script> <!-- zone.js required by Angular --> <script src="node_modules/zone.js/dist/zone.js"></script> <!-- application polyfills -->
© 2010–2018 Google, Inc.
Licensed under the Creative Commons Attribution License 4.0.