使用6to5时如何让Object.assign()在浏览器中工作?

时间:2015-02-08 22:43:29

标签: javascript babeljs

使用6到5的转换器。当我尝试在我的代码中使用Object.assign()时,我收到以下错误:Uncaught TypeError: Object.assign is not a function。如何启用此功能?

2 个答案:

答案 0 :(得分:3)

在最新版本中, 6to5已重命名为Babel ,您不再需要这样做。您可以将其配置为使用polyfill或加载运行时。这就是我在gulp中设置它的方式:

browserify({debug : true})
.transform(

    // We want to convert JSX to normal javascript
    babelify.configure({

        // load the runtime to be able to use Object.assign
        optional: ["runtime"]
    })
);

无论您使用什么工具,您的配置都应该非常相似。使用独立包看起来像这样:

require("babel").transform("code", { optional: ["runtime"] });

您可以查看runtime的{​​{3}}。但请记住更新到最新版本的babel!它经常更新。

答案 1 :(得分:1)

您必须包含browser-polyfill.js文件:

  

可从npm版本的6to5目录中的browser-polyfill.js文件获得。这需要包含之前所有已编译的6to5代码。您可以将其添加到已编译的代码中,也可以将其包含在<script>之前。

     

注意:请勿通过浏览器等require使用6to5/polyfill

http://6to5.org/docs/usage/polyfill/