Babel 7不会在IE11中多填Promise,Fetch和某些JavaScript文件(例如在供应商文件中)

问题描述 投票:0回答:1

我已升级为Babel 7。在Opera和Chrome等常绿浏览器中,它可以正常工作。但是在IE11中,Promise和Fetch API并未在JavaScript中进行多重填充。当我手动填充它们时,我看到一个奇怪的问题,其中vendorXYZ.js文件仍然具有ES6代码(SCRIPT错误)。我该如何解决?

javascript internet-explorer-11 webpack-4 babel-loader babel-polyfill
1个回答
0
投票

Babel 7有一个问题,即它没有polyfill Promise and Fetch API。在常绿的浏览器中,这并不是问题,因为它们本身就支持这些浏览器。但这是IE11中的一个巨大问题,缺乏本机支持。我无法找到使Babel填料的方法。我发现的解决方法是自行填充它们。我使用bluebird来填充JavaScript。您可以使用whatwg-fetch

来进行填充

我相信一种趋势将很快开始,库和框架开发人员将不再费心在ES5中提供其代码的构建版本。无论如何,通常在npm_module中没有Babel Transpile软件包。因此,您可能有一个用ES6编写的JavaScript文件,但是被传递给IE11,这可能会引起问题。我建议浏览供应商文件或Webpack输出到的任何文件,并尝试看看您是否确定哪个软件包具有ES6 +代码。我个人认为query-string版本6有问题。解决方法是使用ES5降级到其他版本,或者使用babel-loader转换代码。

© www.soinside.com 2019 - 2024. All rights reserved.