Как сделать последние версии Angular совместимыми со старыми браузерами?

В документации Angular указано, что он совместим с двумя последними версиями (и последней + ESR для Firefox) для всех основных браузеров. Поскольку Angular использует стандартный DOM API под капотом, должна быть возможность полифиллинга Angular для совместимости со старыми браузерами.

Мой конкретный вариант использования: мне нужно поддерживать старые браузеры, которые не подлежат обновлению, поскольку они встроены в прошивку устройства (не бойтесь, они не подключены к Интернету -> никаких проблем с безопасностью).

Вопросы следующие:

  • Есть ли список функций браузера, которые необходимо заполнить?
  • Кто-нибудь уже делал подобные вещи?
  • Есть ли список существующих полифилов, которые могут выполнить эту работу? Достаточно ли полифила core-js?

Немного продвинулись на этапе исследования: вот руководство по интеграции полифилов stackoverflow.com/questions/78603055/…

Max 12.06.2024 14:43
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
1
211
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Есть ли список функций браузера, которые необходимо заполнить?

Да, но это зависит от того, на какие браузеры вы ориентируетесь. Похоже, у вас есть четко определенный список браузеров, поэтому вы сможете найти список необходимых полифилов с помощью:

Кто-нибудь уже это делает?

Да, но проблемы, как и ваши, обычно очень специфичны для контекста. Никто не создает угловые приложения со сложным функционалом, ориентированные на 100% браузеров.

Вообще говоря, инструменты объединения обычно позволяют вам указать целевые браузеры, хотя конкретные браузеры, на которые вы ориентируетесь, могут быть недоступны в качестве параметров целевого браузера для вашего инструмента объединения.

Поскольку вы используете Angular, вы можете указать целевые браузеры в .browserslistrc в корне приложения. Если, например, вы ориентируетесь на IE 11, это может выглядеть так:

>0.25%
IE 11

Есть ли список существующих полифилов, которые могут выполнить эту работу? Достаточно ли полифила core-js?

Опять же, это зависит от того, что именно вам нужно для полифила. Если это простое приложение, Core-js может быть достаточно. Лучший способ выяснить это — использовать core-js и посмотреть, работает ли оно. Если нет, вы всегда сможете найти пакет, который будет выполнять полифил для вас. Обязательно избегайте ненужных функций, требующих полизаполнения (например, для анимации Angular, скорее всего, потребуется полифил для браузеров, на которые вы ориентируетесь. Возможно, проще просто не использовать анимацию).

Обязательно оберните развертывания тестами e2e для браузеров, на которые вы ориентируетесь.

В дальнейшем вам нужно будет добавить тесты e2e для ваших целевых браузеров в процессе развертывания.

Спасибо за вашу разработку. Есть ли у вас представление о том, насколько сигналы Angular влияют на эту проблему совместимости? Можно ли полифиллить и используемую технологию?

Max 06.05.2024 10:22

К сожалению, похоже, что полифилл для него находится в разработке на момент написания статьи github.com/tc39/proposal-signals/blob/…

Hugh 06.05.2024 14:09

Хорошо, но это для сигналов JavaScript. Angular не может использовать сигналы JavaScript, поскольку их еще не существует. Это всего лишь предложение внедрить его. Angular должен иметь собственную логику для реализации сигналов.

Max 07.05.2024 14:58

Browserslistrc не подхватывается автоматически. Подробное руководство я написал в другом вопросе по этой теме: stackoverflow.com/a/78611674/6098257 может кому-то это поможет.

Max 19.06.2024 09:16

Другие вопросы по теме