Укажите платформу модуля NPM для использования в Angular - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть приложение Angular, которое работает в Chrome, но не работает (очевидно) в Internet Explorer.Вот что происходит:

Некоторые из устанавливаемых мной модулей NPM поставляются с разными дистрибутивами.Так, например, структура папок в kendo-angular-charts выглядит следующим образом:

- dist
   |- cdn
   |- es
   |- es2015
   |- npm
   |- systemjs

Когда сайт разрывается в IE, это происходит из-за следующего объявления в es2015\common\configuration.service.js:

export class Change {
    constructor(key, value) {
        this.key = key;
        this.value = value;
    }
}

Это ломается (неверная синтаксическая ошибка), потому что классы ES2015 не поддерживаются в Internet Explorer .Но в папке es также есть совершенно корректная версия ES5-файла.

Так как мне использовать это вместо?

Я проверил angular.json и package.json дляпараметры, которые кажутся связанными, но ничего не нашли.

Ответы [ 3 ]

0 голосов
/ 17 января 2019

был ли когда-нибудь найден ответ на это.У меня та же проблема с сеткой.Работало пару недель назад, а сейчас нет.Я не могу определить, что изменилось, чтобы вызвать использование es2015 против библиотеки es.Есть ли конкретный core-js polyfill, который контролирует это?

0 голосов
/ 18 января 2019

Правильный способ указать диалект JavaScript, который будет использоваться в вашем компиляторе output , это свойство target в tsconfig.json.В нашем случае нам нужно было установить его значение на es5.

Это относится только к вашему коду, но не к импортированным пакетам.

Кроме того, большинство импортов обычно просто указывают имя пакета, но вы также должны искать импорт, специально предназначенный для неправильной версии.В нашем случае мы имели импорт под @progress/kendo-angular-charts/dist/es2015, который был источником нашей проблемы.

0 голосов
/ 20 декабря 2018

См. Документацию по поддержке браузера Angular (https://angular.io/guide/browser-support#enabling-polyfills) - нет необходимости импортировать различные сборки определенных пакетов. Если вы используете Angular CLI, вы можете просто отредактировать файл src/polyfills.ts и раскомментировать браузерpolyfills.

Если вы не используете Angular CLI, вы можете импортировать core-js с помощью NPM и импортировать соответствующие polyfills (https://www.npmjs.com/package/core-js).

...