script1010:未识别的语法 |无法使用 IE11 的 Babel 将 ES6 转换为 ES5

script1010: unidentified syntax | Not Able to convert ES6 to ES5 using Babel for IE11

在我的 Reactjs 代码中,我得到

Script1010: unidentified syntax.

这是因为 types.min.js 文件在 node_module/types.js 文件夹中。

在 types.min.js 文件内; o=function(...n) 由于 ES6 语法,代码出错。当我使用 Gulp 构建代码时,它不会将 ES6 转换为 ES5,因此 IE11 会抛出错误。我正在使用 babel-polyfill。

所以任何线索为什么它没有转换。???

当我将 types.js 代码转换为 ES5 格式并将其粘贴到 types.min.js 文件时,它工作得很好。但这不是正确的做法。

main.js:

// polyfills
   import 'classlist-polyfill';
   import 'element-closest';
   import objectFitImages from 'object-fit-images';
   import picturefill from 'picturefill';
   import 'masonry-layout/dist/masonry.pkgd';
   import 'imagesloaded/imagesloaded.pkgd';

babelrc:

{
  "presets": ["env","es2015", "react"],
  "plugins": [
    "transform-object-rest-spread",
    "transform-class-properties"]
}

如果您将 https://raw.githubusercontent.com/phazelift/types.js/master/types.min.js 复制到 IE 11 控制台并 运行 它,您会看到从 node_modules/types.js 获得的代码与 IE 11 不兼容。

因为在 node_modules 文件夹中的大多数构建堆栈配置模块都免于使用 Babel 进行转译,最简单的解决方法是将它们的代码复制到您自己的 JS 代码所在的项目文件夹中。从那里导入它确保你的 Babel 转译代码。