我的 IE 11 和我的 React 应用程序有问题。我使用 Webpack、babel 和 polyfill.io cdn,一切都很好,直到渲染捆绑文件,然后它停止做任何事情。你知道可能会出什么问题吗?
提前致谢。
我的 IE 11 和我的 React 应用程序有问题。我使用 Webpack、babel 和 polyfill.io cdn,一切都很好,直到渲染捆绑文件,然后它停止做任何事情。你知道可能会出什么问题吗?
提前致谢。
React 不立即与 IE 兼容,
来自官方文档:
React 支持所有流行的浏览器,包括 Internet Explorer 9 及更高版本,尽管旧版浏览器(例如 IE 9 和 IE 10)需要一些 polyfill。
我们不支持不支持 ES5 方法的旧浏览器,但是如果页面中包含诸如 es5-shim 和 es5-sham 之类的 polyfill,您可能会发现您的应用程序确实可以在旧浏览器中运行。如果你选择走这条路,你就靠自己了。
要使您的应用程序在 IE(11 或 9)上运行,您必须安装 React-app-polyfill :
https://www.npmjs.com/package/react-app-polyfill
特征 :
每个 polyfill 确保存在以下语言功能:
Promise (for async / await support)
window.fetch (a Promise-based way to make web requests in the browser)
Object.assign (a helper required for Object Spread, i.e. { ...a, ...b })
Symbol (a built-in object used by for...of syntax and friends)
Array.from (a built-in static method used by array spread, i.e. [...arr])
用法
首先,使用 Yarn 或 npm 安装包:
npm install react-app-polyfill
现在,您可以导入您打算支持的最小版本的入口点。例如,如果您导入 IE9 入口点,这将包括 IE10 和 IE11 支持。
浏览器 9
// This must be the first line in src/index.js
import 'react-app-polyfill/ie9';
// ...
浏览器 11
// This must be the first line in src/index.js
import 'react-app-polyfill/ie11';
// ...
您还可以使用以下文档配置您的清单以处理不同的浏览器:https : //github.com/browserslist/browserslist
例子 :
"browserslist": [
">0.2%",
"not dead",
"ie >= 9"
]
来自官方网站的更多信息
对于偶然发现这个问题的任何其他人,
如果 react-app-polyfill 对您不起作用,请尝试使用 core-js。
$ npm install core-js
确保这是 src/index.js 文件中的第一行:
import 'core-js/stable'
此外,您在开发过程中可能看不到修复程序。
对我来说,这个问题只在生产版本(react build)中得到解决
包 react-app-polyfill 将有助于在 ie9 和 ie11 中运行 react app。这将适用于开发和生产环境。
请按照步骤 1. 编辑 index.js 文件并在文件的最顶部添加以下几行。
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/ie11';
import 'react-app-polyfill/stable';
编辑 Package.json 文件并在浏览器列表的开发部分添加“ie 11”。默认的生产列表非常慷慨,并且通过> 0.2%已经包括即11
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version",
"ie 11"
]
}
删除整个 node_modules 文件夹
运行 npm install 重新安装 node_modules
运行 npm start 再次运行
react-app-polyfills
仅适用于生产,不适用于开发。构建、部署然后测试它。
尝试以下方法一定能解决问题:-
步骤 1:- 首先安装软件包: -
npm install react-app-polyfill
or
yarn add react-app-polyfill
第 2 步: -在 index.js 文件的顶部添加以下命令: -
import 'react-app-polyfill/ie11';
import 'react-app-polyfill/stable';
第 3 步:- 在 package.json 文件中将 browserlist 部分替换为以下内容:-
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all",
"ie >= 9"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version",
"ie 11"
]
}
第 4 步:- 删除节点module、package.lock.json、yarn.lock,然后运行以下命令:-
yarn
yarn start
or
npm install
npm start