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

时间:2018-04-04 11:29:01

标签: reactjs internet-explorer-11 babeljs create-react-app polyfills

我今天用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"
  }
}

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

4 个答案:

答案 0 :(得分:1)

看来填充料的顺序也是一个因素。此问题中有几种解决方案可以帮助解决此问题。 https://github.com/facebook/react/issues/8379

答案 1 :(得分:0)

您需要包含babel-polyfill并转换为ES5以便IE11正常工作。

  

React 16取决于集合类型Map和Set。如果你支持   较旧的浏览器和设备可能尚未提供这些本机   (例如IE< 11)或具有不兼容的实现(例如IE   11),考虑在捆绑应用程序中包含全局polyfill,   例如core-js或babel-polyfill。

https://reactjs.org/docs/javascript-environment-requirements.html

您可以通过webpack包含polyfill,如此

entry: {
      app: [
        'babel-polyfill',
        'react-hot-loader/patch',
        'react',
        'react-dom',
        './src/index.web.tsx',
      ]
},

答案 2 :(得分:0)

这是IE问题,不是框架反应。

“默认”是IE上的保留字的问题

您可以将“默认”函数重命名为新名称,或将javascript函数用作:

return e["default"]

答案 3 :(得分:0)

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

因此,问题是默认情况下,应用程序是在IE7上呈现的,而不仅仅是在支持已编译版本的IE IE11 / EDGE上呈现。因此,我不得不提及元信息,以使浏览器知道预期的浏览器是IE11 / edge。将其添加到index.html的function OpenFirstDiv() { document.getElementById("FirstDiv").style.display = 'block'; document.getElementById("SecondDiv").style.display = 'none'; } function OpenSecondDiv() { document.getElementById("FirstDiv").style.display = "none"; document.getElementById("SecondDiv").style.display = "block"; } 部分:

head

现在,正如我所知,您还会在控制台中看到以下错误:

<meta http-equiv="X-UA-Compatible" content="IE=edge">

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

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