babel官方最新推荐是使用babel-preset-env。可以根据浏览器版本之类的自动加载插件,那是不是就不需要transform-runtime插件了呢?但是我看vue-cli却是两者都使用了
{
"presets": [
["env", {
"modules": false
}],
"stage-2"
],
"plugins": ["transform-runtime"],
}
请问这是为什么?
babel官方最新推荐是使用babel-preset-env。可以根据浏览器版本之类的自动加载插件,那是不是就不需要transform-runtime插件了呢?但是我看vue-cli却是两者都使用了
{
"presets": [
["env", {
"modules": false
}],
"stage-2"
],
"plugins": ["transform-runtime"],
}
请问这是为什么?
2 回答1.8k 阅读✓ 已解决
1 回答1.5k 阅读✓ 已解决
908 阅读
搬运一下 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.3 的
babel-preset-env
。