17

i am using angular4 for my project, when i first encountered this error i found some blog which asked me to install object-assign and use in the project. so i installed object-assign using npm install object-assign --save command and refrenced it in the polyfill.ts file like this

import 'object-assign';
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';

then i build the project using this command

ng build --prod --env=prod

but even after refrencing this file i am getting the error like this

enter image description here how can i solve this, did i miss something.

i am able to see the application in all other browser except IE11

Lijin Durairaj
  • 3,341
  • 11
  • 31
  • 50
  • Are you using angular cli? There are certain polyfills that have to be imported to your project in your `polyfills.ts` file you have to uncomment pretty much everything. I'm assuming what you look for is in `core-js/es6/object`. – Vic Aug 11 '17 at 08:16

1 Answers1

29

all it needed was a little reading of the commented line of the polyfills.ts file and i found out that there was already all the required file for making the application IE11 compatible, all we have to do is un-comment the following and it was working as expected. this is the polyfills.ts file

/**
 * This file includes polyfills needed by Angular and is loaded before the app.
 * You can add your own extra polyfills to this file.
 *
 * This file is divided into 2 sections:
 *   1. Browser polyfills. These are applied before loading ZoneJS and are sorted by browsers.
 *   2. Application imports. Files imported after ZoneJS that should be loaded before your main
 *      file.
 *
 * The current setup is for so-called "evergreen" browsers; the last versions of browsers that
 * automatically update themselves. This includes Safari >= 10, Chrome >= 55 (including Opera),
 * Edge >= 13 on the desktop, and iOS 10 and Chrome on mobile.
 *
 * Learn more in https://angular.io/docs/ts/latest/guide/browser-support.html
 */

/***************************************************************************************************
 * BROWSER POLYFILLS
 */

/** IE9, IE10 and IE11 requires all of the following polyfills. **/
import 'core-js/es6/symbol';
import 'core-js/es6/object';
import 'core-js/es6/function';
import 'core-js/es6/parse-int';
import 'core-js/es6/parse-float';
import 'core-js/es6/number';
import 'core-js/es6/math';
import 'core-js/es6/string';
import 'core-js/es6/date';
import 'core-js/es6/array';
import 'core-js/es6/regexp';
import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';

/** IE10 and IE11 requires the following for NgClass support on SVG elements */
import 'classlist.js';  // Run `npm install --save classlist.js`.

/** Evergreen browsers require these. **/
import 'core-js/es6/reflect';
import 'core-js/es7/reflect';


/**
 * Required to support Web Animations `@angular/animation`.
 * 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`.



/***************************************************************************************************
 * Zone JS is required by Angular itself.
 */
import 'zone.js/dist/zone';  // Included with Angular CLI.



/***************************************************************************************************
 * APPLICATION IMPORTS
 */

/**
 * Date, currency, decimal and percent pipes.
 * Needed for: All but Chrome, Firefox, Edge, IE11 and Safari 10
 */
// import 'intl';  // Run `npm install --save intl`.
/**
 * Need to import at least one locale-data with intl.
 */
// import 'intl/locale-data/jsonp/en';
Lijin Durairaj
  • 3,341
  • 11
  • 31
  • 50
  • I got the same problem, but can't find polyfills.ts although polyfills.js exists it is different than what you show here... any idea?? – Red Oct 12 '17 at 23:49
  • 1
    "ur-angular-app-folder"/src/polyfills.ts – Ales Oct 24 '17 at 06:24
  • Great answer, for anyone who is still struggling after uncommenting this, is probably because you need to add `import './polyfills.ts';` in **boot.browser.ts** file (for people using Visual Studio 2017) and this import has to be at the top i.e. before zone.js or bootstrap etc. – CodeWarrior Feb 28 '18 at 07:01
  • @CodeWarrior. Im still got problem after uncomment and im not using visual studio. Can explain more? – SKL Jun 25 '18 at 03:29
  • @SamuelKavinLoganathan Hey mate, as I've mentioned above in my comment, after uncommenting, you need to add `import './polyfills.ts';` in your **boot.browser.ts** equivalent file of the IDE you are using. For me using Visual Studio 2017 it was **boot.browser.ts**. Have you tried that? – CodeWarrior Jun 25 '18 at 04:13
  • @CodeWarrior thanks for reply mate. I don't understand that actually? Can you guide me how to do that? – SKL Jun 25 '18 at 06:22
  • @SamuelKavinLoganathan If you could post this as a separate question and provide more information along with which IDE you are using, I might be able to help. :) – CodeWarrior Jun 25 '18 at 22:56
  • what about supporting fetch? – Jun Aug 02 '18 at 23:13
  • @CodeWarrior where this boot.browser.ts file locate? – Faisal Aug 28 '18 at 11:17
  • @Faisal When I was working on Angular 4, the file structure was **Project --> ClientApp --> boot.browser.ts** Angular 6, however, do not use the same structure and doesn't have a `boot.browser.ts` file. I'm not a 100% sure but the `main.ts` in Angular 6 have a very similar structure and maybe that is where the import might need to happen. – CodeWarrior Aug 29 '18 at 03:59