babel 使用了babel-preset-env 还需要transform-runtime吗?

babel官方最新推荐是使用babel-preset-env。可以根据浏览器版本之类的自动加载插件,那是不是就不需要transform-runtime插件了呢?但是我看vue-cli却是两者都使用了

{
  "presets": [
    ["env", {
      "modules": false
    }],
    "stage-2"
  ],
  "plugins": ["transform-runtime"],
 
}

请问这是为什么?

阅读 7.2k
1 个回答

搬运一下 creeperyang 的答案:

babel-preset-env@1.x 没法很好地消除未使用的polyfill(就是说有未使用的代码被引入进来了)。如果希望避免这一点,那么就会禁用useBuiltIns: true,而用更好的 transform-runtime 代替。

babel-preset-env@2.x 中可以用 useBuiltIns: 'usage' 达到按需引入的目的。

详情可见:

babel/babel-preset-env#84
babel/babel-preset-env#241

可以看到 vuejs-templates/webpack/ 引入的是 1.3babel-preset-env

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏