Appearance
Babel 的作用是“把高级语法转成低级语法”,让旧浏览器也能跑新代码。它不是优化性能,甚至有时会让代码变大、变慢(比如 class 转 function,async/await 转 promise)。 浏览器本身不会做 Babel 的工作。浏览器只会执行 JS,不会自动把 ES2020 代码转成 ES5。Babel 是在“打包时”做的,不是浏览器在“加载时”做的。 打包时用 Babel 不会让加载更快,反而可能因为代码体积增大而略慢。只有在你使用了浏览器不支持的语法时,Babel 才“必要”,如果只服务于最新 Chrome/Edge,可以关掉 Babel。
npm i -D @rollup/plugin-babel @babel/core @babel/preset-envjson
// src/.babelrc.json
// .babelrc.jspn 放在src,而不是项目根目录中,这允许我们在测试之类的事情上有所不同。
{
"presets": ["@babel/env"]
}js
// rollup.config.mjs
import babel from '@rollup/plugin-babel'
export default {
input: 'src/main.js',
output: {
file: './dist/bundle.js',
format: 'cjs'
},
plugins: [babel({ babelHelpers: 'bundled' })]
}