美文网首页
Use es2015 with babel in ie8

Use es2015 with babel in ie8

作者: hibryce | 来源:发表于2016-05-16 18:46 被阅读0次

    最近在用webpack+babel+es2015来写一个react项目,主体部分不需要兼容ie8,写的非常爽。主要部分做的差不多了之后,剩下的一个部分需要兼容ie8,然后问题就来了。

    babel默认转换出来的代码,在ie8下不行,主要原因有下面这些:

    • Object.defineProperty等 需要profil。使用babel-polyfill就可以了。
    • 关键字在ie8不能用作属性名。
      Foo.default; //报错,需要写成Foo['default'] var foo = {default:1};//报错,需要写成var foo = {'default':1}; //使用这两个插件进行转换 //"transform-es3-member-expression-literals", //"transform-es3-property-literals"

    本以为这样就ok了,结果还是不行。这两个插件没法转换这种情况。
    import foo from './foo'; var a = foo.a; // output var _foo = require('./foo'); var _foo2 = _interopRequireDefault(_foo); var a = _foo2.default.a;
    default 仍然是直接作为了属性名,ie8依然报错。
    这个问题需要用es3ify-loader,来解决。
    以为到这里应该就没问题了,结果还是不行,Flux也不支持ie8。。
    我还得再改。。

    题外话,react0.15就不再支持ie8,Flux也不支持ie8,讲真,需要支持ie8的项目还是不建议用React了。

    最后自己写了个插件,解决这个问题。

    相关文章

      网友评论

          本文标题:Use es2015 with babel in ie8

          本文链接:https://www.haomeiwen.com/subject/qxibrttx.html