Weback清单文件无法编译为es5

时间:2018-11-05 18:34:58

标签: javascript reactjs webpack babeljs

最近,由于webpack清单文件中包含refs/heads,而IE11无法运行,因此我们的构建已停止在IE11上运行。

我对此进行了研究,发现.includes在其代码中使用了react-datepicker,但是在我们的.includes()文件中,它对其进行了转换,因此其中没有任何内容,仅在清单文件中。

如果我从Webpack中删除清单文件,则错误将移至main.app.js文件,并显示main.app.js。此错误来自object doesn't support property or method includes的camelCase.js。我觉得这是鲱鱼,但不是完全确定。

我不确定这是Webpack问题还是babel或插件错误。

以前有没有人经历过并且知道如何解决?

到目前为止我已经完成的步骤

我已在package.json中锁定对版本16.3.0的反应。

我降级了redux-actions插件。

我已从清单文件中删除了清单文件。

我尝试更新react-datepicker

我尝试降级redux-actions

这是我的webpack文件:

redux-actions

1 个答案:

答案 0 :(得分:2)

我建议您使用一个polyfill在运行时添加对有问题的API(例如Array.includes())的支持,而不是尝试摆脱引起Internet Explorer 11不兼容问题的库。

可能最流行的解决方案是Babel Polyfill

您可以通过在页面的HTML代码中添加以下脚本标记来使用它:

    <script nomodule src="https://cdnjs.cloudflare.com/ajax/libs/babel-polyfill/6.26.0/polyfill.min.js" integrity="sha256-WRc/eG3R84AverJv0zmqxAmdwQxstUpqkiE+avJ3WSo=" crossorigin="anonymous"></script>

请注意属性 nomodule ,这是为了确保仅不支持ES2015模块的浏览器才实际加载polyfill,即IE11。

现代浏览器(Chrome,Firefox,Safari等)将仅忽略脚本标签,而不会给用户带来额外的下载负担。