babel@6.2.0预编译的ES6代码无法在IE8上愉快的运行,各位前辈有办法吗?

babel只做了es6 to es5的转换,而IE8对es5算不上友好。更关键的是,default是IE的关键词却直接出现在转换出来的es5代码中,这…
关注者
175
被浏览
19,585

10 个回答

这个方案目前有 Bug 不能解决问题,请转向 @贺师俊 回答

可以使用这两个插件转换到 ES3 的对应语法(给关键字加上引号):

【3月15日更新】

最近的babel 6.6似乎已经修复了相关的bug,所以应该可以不用workaround了。(不过据说又引起了其他bug,导致可能被reverse掉……所以建议还是再等一两个版本。)

【2月6日回答】

@北白川团子

的答案指出可以使用

es3-member-expression-literals

转换。不过由于 Babel 6 目前有个 bug

phabricator.babeljs.io/

几个月还没修,所以还是不行的。目前的 workaround,你可以使用

@yaya

提到的 es3ify ,或者使用 uglifyjs 再做一次转换。

注意,为了兼容 IE8,光使用上述 plugins 还是不够的。你可能还需要使用

es5-property-mutators

jscript

等 plugins,以及使用 polyfill / shim。

最后吐槽下,babel 确实还是有不少 bug……