Mise à jour : L'approche et la documentation du polyfill create-react-app ont changé depuis cette question / réponse. Vous devriez maintenant inclure react-app-polyfill
( ici ) si vous souhaitez prendre en charge des navigateurs plus anciens comme ie11. Cependant, cela n'inclut que les " ... exigences minimales et les fonctionnalités de langage couramment utilisées ", vous voudrez donc toujours utiliser l'une des approches ci-dessous pour les fonctionnalités ES6 / 7 moins courantes (comme Array.includes
)
Ces deux approches fonctionnent toutes les deux:
1. Importations manuelles depuis react-app-polyfill et core-js
Installez react-app-polyfill et core-js (3.0+):
npm install react-app-polyfill core-js
ou yarn add react-app-polyfill core-js
Créez un fichier appelé (quelque chose comme) polyfills.js et importez-le dans votre fichier racine index.js. Puis importez les polyfills de base react-app, ainsi que toutes les fonctionnalités requises spécifiques, comme ceci:
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. Service Polyfill
Utilisez le CDN polyfill.io pour récupérer des polyfills personnalisés et spécifiques au navigateur en ajoutant cette ligne à index.html:
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=default,Array.prototype.includes"></script>
Remarque, j'ai dû demander explicitement la Array.prototype.includes
fonctionnalité car elle n'est pas incluse dans l'ensemble de fonctionnalités par défaut.
babel-polyfill
un polyfill ES6 + facile.