如何使用Create React App 3.0支持IE 11?

Nai*_*dim 11 internet-explorer create-react-app

随着Create React App 3.0的发布以及浏览器列表的添加,添加对IE 11的支持变得微不足道,但是如果您不知道在哪里查找,则很难找到这些步骤。该文档列出了“受支持的浏览器”,并显示了默认的浏览器列表配置(https://facebook.github.io/create-react-app/docs/supported-browsers-features),但这并不是您所需要的全部。

使用生产设置检查browserl.ist时,您会发现IE 11的使用率比Edge仍然高(https://browserl.ist/?q=%3E0.2%25%2C+not+dead%2C+not+op_mini + all),使用默认的CRA 3应用程序,您将在main.chunk.js中收到语法错误,而在使用IE 11的应用程序中将收到其他错误。

Nai*_*dim 41

要停止错误并获得在IE 11中运行的默认create-react-app React应用程序:

  1. 使用创建您的基本应用程序 npx create-react-app [AppName]
  2. 添加import 'react-app-polyfill/ie11';到index.js的非常顶部
  3. 如果您需要IE 11不支持的通用标准函数(如Array.find()),请import 'react-app-polyfill/stable';在index.js的第一行下方添加
  4. 在package.json中,将生产浏览器列表复制到开发中,以便可以在IE11中进行测试
  5. 删除node_modules / .cache目录

  • #4。要支持 ie-11 测试环境,只需在生产和开发末尾添加 `"ie 11"`,将 browserlist 部分添加到 package.json @Naidim (12认同)
  • @Graham https://github.com/facebook/create-react-app/issues/8084#issuecomment-562981098 (4认同)
  • 将 `import 'react-app-polyfill/stable';` 添加到我的 index.js 为我的应用程序增加了 0.5MB!好多啊。 (4认同)
  • 不幸的是,当使用“npm start”在开发模式下运行应用程序时,这不起作用。 (2认同)
  • 除了上述步骤之外,我还必须将“import 'core-js/stable/symbol'”添加到“src/index.js”文件中,以便 IE11 能够与 CRA 应用程序(CRA=v4.0.1,反应=v17.0.1)。我把它放在“react-app-polyfill”行之后。由于某种原因,“yarn pop”也可以工作(无需导入 Symbol polyfill)。 (2认同)

fer*_*llo 7

IE 11 是一场噩梦。有一些事情可能会解决问题:

  1. 有了react-app-polyfill你可以更新的主要事情是一个伟大的点开始。该文档非常容易实现:https : //github.com/facebook/create-react-app/tree/master/packages/react-app-polyfill
  2. 您可能也在使用箭头函数,因此您还需要 babel 为您更新它。这babel-plugin-transform-arrow-functions是您最好的解决方案。它在文档中有很好的解释:https : //babeljs.io/docs/en/babel-plugin-transform-arrow-functions
  3. 检查该应用程序是否支持browserslist.