Я попытался запустить свое реагирующее веб-приложение на старом iPhone 4 (под управлением iOS 7). Даже если я добавил «iOS 7» в список браузеров в package.json, приложение все равно не запустится.
Отладка показывает, что в 1.chunk.js
есть ошибка
Can't find variable 'Map'
Добавление ошибочного кода в App.js вверху или в index.js
заставляет меня поверить, что этот чанк запускается перед любым моим кодом. Поэтому я не думаю, что смогу это исправить, импортировав полифилл в эти файлы.
Я попытался добавить скрипт polyfill для Map в index.html, что привело меня к следующей ошибке
Can't find variable 'Set'
Но такой способ взлома не является хорошим решением.
На данный момент я выбросил npm run eject
create-реакции-приложение, которое я бы предпочел не делать, но оно может позволить мне обмануть webpack
при добавлении полифилов перед этим кодом 1.chunk.js.
Есть ли хороший способ не извлекать create-реагировать на приложение и получать полифилы без хаков в index.html?
Редактировать: Только использование уже связанного пакета core-js в заголовке страницы решило все мои проблемы. Комплект CDN можно использовать так:
<script src="https://unpkg.com/core-js-bundle@3.0.1"></script>
Или это, если вы хотите использовать уменьшенную версию:
<script src="https://unpkg.com/core-js-bundle@3.0.1/minified.js"></script>
Не помечать это как решенное, так как может быть и правильное решение. Однако включение любых полизаполнений в ваш собственный код никогда не будет учитываться сценариями сборки для «исправления» сторонней организации, которая запускается перед вашим кодом.