Обновление : подход и документация create-react-app polyfill изменились после этого вопроса / ответа. Теперь вы должны включить react-app-polyfill
( здесь ), если хотите поддерживать старые браузеры, такие как ie11. Однако это включает только « ... минимальные требования и часто используемые языковые функции », поэтому вы все равно захотите использовать один из подходов ниже для менее распространенных функций ES6 / 7 (например Array.includes
)
Оба этих подхода работают:
1. Ручной импорт из react-app-polyfill и core-js.
Установите react-app-polyfill и core-js (3.0+):
npm install react-app-polyfill core-js
или yarn add react-app-polyfill core-js
Создайте файл с именем (что-то вроде) polyfills.js и импортируйте его в свой корневой файл index.js. Затем импортируйте базовые полифилы приложения react-app, а также все необходимые функции, например:
import 'react-app-polyfill/ie11';
import 'core-js/features/array/find';
import 'core-js/features/array/includes';
import 'core-js/features/number/is-nan';
import './polyfills'
...
2. Сервис Polyfill
Используйте сеть CDN polyfill.io для получения настраиваемых полифиллов для конкретного браузера, добавив эту строку в index.html:
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=default,Array.prototype.includes"></script>
обратите внимание, мне пришлось явно запросить эту Array.prototype.includes
функцию, поскольку она не включена в набор функций по умолчанию.
babel-polyfill
простой полифил ES6 +.