До сих пор я импортировал core-js в polyfills.ts. Однако это раздувает полученный пакет, поэтому я пытаюсь его удалить.
В tsconfig.json у меня есть цель: «ES2022», модуль: «es2020» и другие.
Согласно документации Angular (https://angular.io/guide/build), начиная с Angular 15, .browserslistrc используется для определения ES-версии полученного пакета. Однако, что бы я ни указал в указанном файле, я не могу заставить свое приложение работать в Safari 11 (белый экран смерти):
(в main.js) TypeError: Xt.flat не является функцией. «Xt.flat» не определен
Я использую этот файл .browserslistrc:
supports es6-module
not dead
not ios_saf <= 10.3
not safari <= 10.1
not safari tp
not edge <= 17
В angular.json используется конструктор @angular-builders/custom-webpack.
Array.flat
доступен начиная с Safari 12. Список браузеров не будет заполнять его за вас.
Список браузеров просто проверит, что синтаксис в порядке (преобразование нулевого объединения и т. д.).
Исправление состоит в том, чтобы самостоятельно внести полифилл в то, что делал core.js.
Можем ли мы использовать какой-либо инструмент, такой как Babel, для автоматизации процесса полизаполнения в соответствии с .browserslistrc? Я хочу не включать весь core-js, но также избегать ручного выбора полифилов для включения. Спасибо за ваш ответ
@Matthieu Riegler У вас есть официальный источник такого поведения?
Можете ли вы сказать нам, что говорит консоль?