跳至主要内容

支持的浏览器和功能

支持的浏览器

默认情况下,生成的项目支持所有现代浏览器。对 Internet Explorer 9、10 和 11 的支持需要 polyfills。要使用一组 polyfills 来支持旧版浏览器,请使用 react-app-polyfill.

支持的语言功能

该项目支持最新 JavaScript 标准的超集。除了 ES6 语法功能外,它还支持

了解更多关于 不同提案阶段 的信息。

虽然我们建议谨慎使用实验性提案,但 Facebook 在产品代码中大量使用这些功能,因此我们打算提供 代码修改,以防这些提案在未来发生变化。

请注意,**此项目默认不包含任何 polyfill**。

如果您使用任何其他需要**运行时支持**的 ES6+ 功能(例如 Array.from()Symbol),请确保您 手动包含相应的 polyfill,或者您要定位的浏览器已经支持它们。

配置支持的浏览器

默认情况下,生成的项目在您的 package.json 文件中包含一个 browserslist 配置,以针对基于全球使用情况(> 0.2%)的广泛浏览器范围进行生产构建,并针对现代浏览器进行开发。这提供了良好的开发体验,尤其是在使用 async/await 等语言功能时,但仍然为生产环境中的许多浏览器提供了高度兼容性。

browserslist 配置控制输出的 JavaScript,以便发出的代码与指定的浏览器兼容。production 列表将在通过运行 build 脚本创建生产构建时使用,而 development 列表将在运行 start 脚本时使用。您可以使用 https://browserl.ist 查看您配置的 browserslist 支持的浏览器。

以下是在 package.json 中指定的 browserslist 示例

"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}

请注意,这不会自动为您包含 polyfill。您仍然需要根据您支持的浏览器,根据需要对语言功能进行 polyfill(见上文)。

在编辑 browserslist 配置时,您可能会注意到您的更改不会立即生效。这是由于 babel-loader 中的一个问题,无法检测到您 package.json 中的更改。一个快速的解决方案是删除 node_modules/.cache 文件夹,然后重试。