microsoft - Error angular 4 en IE11
angular browser (2)
Tengo un proyecto de Angular 4 que funciona correctamente en Chrome. Sin embargo, no se carga en IE11 con el siguiente error en polyfills.bundle.js (uso el comando "ng build --env = prod" para crear el sitio):
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
var f = ctx(fn, that, entries ? 2 : 1);
var index = 0;
var length, step, iterator, result;
if (typeof iterFn != ''function'') throw TypeError(iterable + '' is not iterable!'');
iterFn no está definido aquí, por lo que se produce un error. Por favor avise.
Como @Sumit ha respondido, debe agregar estas importaciones en el archivo polyfill.ts:
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'';
Además, necesitas importar el api reflejado:
/** IE10 and IE11 requires the following for the Reflect API. */
import ''core-js/es6/reflect'';
/** Evergreen browsers require these. **/
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators),you
//can remove.
import ''core-js/es7/reflect'';
Además, si está utilizando animación de material angular en su proyecto, es necesario importar animaciones web para que el material angular funcione correctamente en IE.
import ''web-animations-js''; // Run `npm install --save web-animations-js`.
Y por último, pero no menos importante, una biblioteca muy importante para que funcione correctamente su proyecto Angular en IE:
/** IE10 and IE11 requires the following for NgClass support on SVG elements */
import ''classlist.js''; // Run `npm install --save classlist.js`
.
Para un mejor soporte de IE11, necesita agregar algunas importaciones de es6 exclusivamente en sus rellenos automáticos. La lista es la siguiente:
/** 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'';