更新:自此问题/答案以来,create-react-app polyfill方法和文档已更改。如果您想支持像ie11这样的旧版浏览器,现在应该包括react-app-polyfill
(here)。但是,这仅包括“ ...最低要求和常用语言功能”,因此您仍然希望使用以下一种方法来处理不太常见的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 polyfills,以及任何特定的必需功能,例如:
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服务
通过将以下行添加到index.html,使用polyfill.io CDN来检索自定义的,特定于浏览器的polyfill:
<script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=default,Array.prototype.includes"></script>
请注意,我必须明确要求该Array.prototype.includes
功能,因为该功能未包含在默认功能集中。
babel-polyfill
了一种简单的ES6 + polyfill。