"react-app-polyfill" 在 IE11 中不工作
"react-app-polyfill" doesn't work in IE11
我的 React 应用无法在 IE 11 上运行。
我的客户希望该应用至少可以在 ie11 上运行。
所以,我必须解决这个错误。
我尝试了 "react-app-polyfill" 的官方文档。但是还是不行。
请帮我。
src/index.jsx
import 'react-app-polyfill/ie11';
import 'react-app-polyfill/stable';
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { Provider } from 'react-redux';
import store from './store';
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
serviceWorker.unregister();
package.json
"dependencies": {
...
"@types/jest": "^24.0.25",
"@types/node": "^12.12.24",
"@types/react": "^16.9.17",
"@types/react-dom": "^16.9.4",
"@types/react-redux": "^7.1.5",
"@types/react-router-dom": "^5.1.3",
"axios": "^0.19.0",
"install": "^0.13.0",
"node-sass": "^4.13.0",
"npm": "^6.13.4",
"react": "^16.12.0",
"react-app-polyfill": "^1.0.5",
"react-dom": "^16.12.0",
"react-hotkeys": "^2.0.0",
"react-redux": "^7.1.3",
"react-router": "^5.1.2",
"react-router-dom": "^5.1.2",
"react-scripts": "3.3.0",
"redux": "^4.0.5",
"redux-devtools-extension": "^2.13.8",
"redux-thunk": "^2.3.0",
"typescript": "^3.7.4"
},
...
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"ie 11",
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
也许问题与 react-scripts version
有关,您使用的是 react-scripts 3.3.0 及更高版本。您可以检查 package.json 文件来验证它。
GitHub中有一些帖子报这个错误,你可以参考一下,例如:github.com/facebook/create-react-app/issues/8197, github.com/facebook/create-react-app/issues/8195.
作为解决方法,您可以尝试降级 react-scripts 版本。据我所知,它仍然可以与 react-scripts@3.2.0
.
一起使用
在您的 index.js
中添加 react-app-polyfill
后,它将适用于 PROD 环境,但您需要在 package.json
中更新 browserslist
以用于 DEV 环境
index.js
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/stable';
import React from 'react';
import ReactDOM from 'react-dom';
.
.
package.json
.
.
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version",
"not dead" // new line
]
},
.
.
我的 React 应用无法在 IE 11 上运行。
我的客户希望该应用至少可以在 ie11 上运行。
所以,我必须解决这个错误。
我尝试了 "react-app-polyfill" 的官方文档。但是还是不行。
请帮我。
src/index.jsx
import 'react-app-polyfill/ie11';
import 'react-app-polyfill/stable';
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';
import { Provider } from 'react-redux';
import store from './store';
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
serviceWorker.unregister();
package.json
"dependencies": {
...
"@types/jest": "^24.0.25",
"@types/node": "^12.12.24",
"@types/react": "^16.9.17",
"@types/react-dom": "^16.9.4",
"@types/react-redux": "^7.1.5",
"@types/react-router-dom": "^5.1.3",
"axios": "^0.19.0",
"install": "^0.13.0",
"node-sass": "^4.13.0",
"npm": "^6.13.4",
"react": "^16.12.0",
"react-app-polyfill": "^1.0.5",
"react-dom": "^16.12.0",
"react-hotkeys": "^2.0.0",
"react-redux": "^7.1.3",
"react-router": "^5.1.2",
"react-router-dom": "^5.1.2",
"react-scripts": "3.3.0",
"redux": "^4.0.5",
"redux-devtools-extension": "^2.13.8",
"redux-thunk": "^2.3.0",
"typescript": "^3.7.4"
},
...
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"ie 11",
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
也许问题与 react-scripts version
有关,您使用的是 react-scripts 3.3.0 及更高版本。您可以检查 package.json 文件来验证它。
GitHub中有一些帖子报这个错误,你可以参考一下,例如:github.com/facebook/create-react-app/issues/8197, github.com/facebook/create-react-app/issues/8195.
作为解决方法,您可以尝试降级 react-scripts 版本。据我所知,它仍然可以与 react-scripts@3.2.0
.
在您的 index.js
中添加 react-app-polyfill
后,它将适用于 PROD 环境,但您需要在 package.json
中更新 browserslist
以用于 DEV 环境
index.js
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/stable';
import React from 'react';
import ReactDOM from 'react-dom';
.
.
package.json
.
.
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version",
"not dead" // new line
]
},
.
.