鍍金池/ 問答/HTML/ babel 使用了babel-preset-env 還需要transform-r

babel 使用了babel-preset-env 還需要transform-runtime嗎?

babel官方最新推薦是使用babel-preset-env。可以根據(jù)瀏覽器版本之類的自動加載插件,那是不是就不需要transform-runtime插件了呢?但是我看vue-cli卻是兩者都使用了

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

請問這是為什么?

回答
編輯回答
歆久

搬運一下 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。

2017年9月27日 18:48