ReactJS - SCRIPT1010:预期标识符 - 生产版本未在IE11上运行

Vis*_*ati 8 polyfills internet-explorer-11 reactjs babeljs create-react-app

我今天用create-react-app创建了一个新项目.生产版本在IE11上运行不正常,控制台显示以下错误:

SCRIPT1010: Expected identifier

它指向我的main.js中的行:

{var n=e&&e.__esModule?function(){return e.default}:function(){return e};

错误发生在上面的e.(默认)之后.我的包json很简单:

{
  "name": "sample-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "react": "^16.3.1",
    "react-dom": "^16.3.1",
    "react-scripts": "1.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我的开发服务器在IE11上完美运行所以问题只适用于生成版本.它也适用于Chrome.我需要填充吗?

Vis*_*ati 9

这是我修复它的方法。不要忘记 React “Dan Abramov” 先生在这方面帮助了我。

所以问题是默认情况下,应用程序在 IE7 上呈现,而不仅仅是在支持转译构建的 IE IE11/EDGE 上。所以我不得不提到元信息让浏览器知道预期的浏览器是 IE11/edge。在head你的 index.html 部分添加这个:

<meta http-equiv="X-UA-Compatible" content="IE=edge">
Run Code Online (Sandbox Code Playgroud)

现在,正如我所知道的,您还会在控制台中看到一些错误,内容如下:

SCRIPT5009: 'Set' is undefined
Run Code Online (Sandbox Code Playgroud)

不用担心,还有一种方法可以解决这个问题:https : //reactjs.org/docs/javascript-environment-requirements.html

这是我在 git 上与 Dan 讨论的问题:https : //github.com/facebook/create-react-app/issues/4255

  • &lt;meta http-equiv="X-UA-Compatible" content="IE=edge"&gt; 为我工作 (2认同)