Internet Explorer & Angular 6 ERROR Ошибка: Uncaught (в обещании): Ошибка: загрузка чанка - PullRequest
0 голосов
/ 15 марта 2019

У меня проблема при использовании Angular 6 и IE 11, приложение работает нормально в Chrome и другом браузере, но в Internet Explorer, я получаю это

Ошибка: Uncaught (в обещании): Ошибка: загрузка чанка по умолчанию ~ app-xxxxx ~ eb5ba6d4 завершилась неудачно.(отсутствует: http://localhost:4200/default~app-xxxx.js) Ошибка: загрузка блока по умолчанию ~ app-xxxx ~ eb5ba6d4 завершилась неудачно. (отсутствует: http://localhost:4200/default~app-xxxx~eb5ba6d4.js)

Сведения о проекте

Угловой интерфейс командной строки: 6.2.3 Узел: 8.12.0 ОС: win32 x64 Angular: ...

Версия пакета

@ angular-devkit / architect 0.8.3 @ angular-devkit / core 0.8.3@ angular-devkit / schematics 0.8.3 @ schematics / angular 0.8.3 @ schematics / update 0.8.3 rxjs 6.2.2 машинопись 2.9.2

Маршрутизация моего приложения

const routes: Routes = [
    {
        path: '',
        loadChildren:  'app/content/pages/pages.module#PagesModule'

    },
    {
        path: 'layout',
        loadChildren: 'app/content/layout/layout.module#LayoutModule',      
    },
    {
        path: '**',
        redirectTo: ''
    }
];

Ответы [ 4 ]

1 голос
/ 18 марта 2019

Потратив несколько часов, наконец-то нашел свои решения Вопрос об обещании ((t, n) =>,

  1. Сначала откройте файл src / polyfills.ts и раскомментируйте
/** 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';

=> лямбда-выражение не поддерживается в IE, поэтому мы можем заменить его функцией code () вместо этого выражения.

  1. Установить несколько пакетов

    npm install - сохранить web-animations-js

    npm install --save classlist.js

Затем я обнаружил проблему с обещанием в одном из пакетов npm (fuctbase64 / index.js)

module.exports = function (event) {
  return new Promise((resolve, reject) => {
    let reader = new FileReader();
    let files = event.target.files;
    let len = files.length;
    if (len > 1) {
      reject(new DOMException("Only one file can be uploaded at a time"));
    } else {
      reader.onerror = () => {
        reader.abort();
        reject(new DOMException("Problem parsing input file."));
      };
      let file = files[0]
      reader.onload = (evt) => {
        const uint = new Uint8Array(evt.target.result);
        let bytes = [];
        uint.map(byte => {
          bytes.push(byte.toString(16));
        });
        const hex = bytes.join('').toUpperCase();
        let base64 = reader.result.split(',')[1];
        file.base64 = base64;
        file.binaryFileType = getMimetype(hex);
        resolve(file);
      };
      reader.readAsDataURL(file);
    }
  });
}

Заменить код на

module.exports = function (event) {
  return new Promise(function(resolve, reject)  {
    let reader = new FileReader();
    let files = event.target.files;
    let len = files.length;
    if (len > 1) {
      reject(new DOMException("Only one file can be uploaded at a time"));
    } else {
      reader.onerror = function() {
        reader.abort();
        reject(new DOMException("Problem parsing input file."));
      };
      let file = files[0]
      reader.onload = function(evt){
        const uint = new Uint8Array(evt.target.result);
        let bytes = [];
        uint.map(function(byte) {
          bytes.push(byte.toString(16));
        });
        const hex = bytes.join('').toUpperCase();
        let base64 = reader.result.split(',')[1];
        file.base64 = base64;
        file.binaryFileType = getMimetype(hex);
        resolve(file);
      };
      reader.readAsDataURL(file);
    }
  });
}
1 голос
/ 15 марта 2019

Я думаю, вам нужно добавить несколько заливок.Если вы откроете файл src/polyfills.ts, вам нужно раскомментировать следующие операции импорта:

/** 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';

РЕДАКТИРОВАТЬ:

Возможно, под этим списком указано больше полифайлов, какупоминается @Arikael в комментариях, что вы можете также раскомментировать.

0 голосов
/ 15 марта 2019

Можете ли вы проверить шаги из этого? это была проблема с IE

Для поддержки Internet Explorer приложения Angular CLI необходимо выполнить еще несколько шагов.

0 голосов
/ 15 марта 2019

Вы должны добавить метатег.

<meta http-equiv="X-UA-Compatible" content="IE=edge" >
...