Угловой 7: нужен полифилл для 'класса' в пакете npm - PullRequest
0 голосов
/ 10 июля 2019

Я столкнулся с проблемой, что мое приложение на основе Angular 7 не работает в IE 11.

Я использую пакет npm, который начинается в index.js с

class PackageClass { 
   // code
}

И во всех браузерах работает нормально, делает то, что должен.Но в браузере IE11 даже не удается открыть приложение, оно выдает ошибку: Syntax error. File: vendor.js line ....И ошибка приводит к определению класса.

Полифилы, которые у меня уже есть в приложении:

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


/**
 * 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`.



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



/***************************************************************************************************
 * APPLICATION IMPORTS
 */
import 'core-js/es7/object';
import 'core-js/es7/array';

Как я могу решить эту проблему (запустить мое приложение в IE11)?Я думаю, что полифилы должны сделать эту работу.

1 Ответ

0 голосов
/ 11 июля 2019

Классы JavaScript не поддерживают браузер IE, вы можете проверить Совместимость браузера классов JavaScript .

В приложении angular 7, если мы хотим определить класс, мы могли бы создать класс, используя машинопись.

Например, создайте класс Hero в папке src / app с именем hero.ts.

Код в src / app / hero.ts

export class Hero {
  id: number;
  name: string;
}

Затем в классе компонентов мы могли бы импортировать класс Hero и использовать класс Hero, используя следующий код:

import { Component, OnInit } from '@angular/core';
import { Hero } from '../hero';

@Component({
  selector: 'app-heroes',
  templateUrl: './heroes.component.html',
  styleUrls: ['./heroes.component.css']
})
export class HeroesComponent implements OnInit {
  hero: Hero = {
    id: 1,
    name: 'Windstorm'
  };

  constructor() { }

  ngOnInit() {
  }

}

Более подробная информация об угловых приложениях приведена в документе угловой .

Кроме того, есть другой метод, вы можете использовать babel для переноса вашего кода в ES5

...