什么是 Rollup?(面试通俗版 + 核心考点)
一句话总结:
Rollup 是一个专注于生产环境的 JavaScript 模块打包工具,主打「打包体积小、代码干净、适合库/组件/生产项目」,也是 Vite 生产打包的底层工具。
1. 最通俗的解释
你写代码时会分成很多文件:
a.js、b.js、utils.js、index.js
Rollup 做的事:
把这些分散的文件,打包成一个(或几个)浏览器/Node 能直接运行的文件。
它和 webpack 最大区别:
- webpack:大而全,什么都能打包(开发 + 生产)
- Rollup:专注精简、高效、干净,专门做生产环境最优打包
2. Rollup 核心特点(面试必背)
① 极致的 Tree-shaking(最核心优势)
- 只打包你用到的代码
- 没用到的函数、变量、模块直接删掉
- 打包结果体积最小、最干净
这就是为什么 Vite 生产环境要用 Rollup!
② 原生支持 ES Modules(import/export)
- 天然适配现代 JS 标准
- 打包出来的代码可读性高
- 没有多余的 webpack 运行时代码
③ 适合打包:库、组件、工具包
Vue、React、Vue3 源码、Vite 本身……都是用 Rollup 打包的。
④ 缺点
- 不适合开发环境(热更新慢、不能按需编译)
- 对图片、样式等资源的处理不如 webpack 方便
3. 面试必问:Rollup 和 Webpack 的区别
| 特性 | Rollup | Webpack |
|---|---|---|
| 定位 | 库/生产打包 | 全功能工程化 |
| 打包体积 | 极小、干净 | 稍大、有运行时 |
| Tree-shaking | 最强 | 支持但弱一些 |
| 开发体验 | 差 | 非常好 |
| 生态 | 适合库 | 适合业务项目 |
| Vite 中角色 | 生产环境打包 | 无 |
4. 最重要的一句话(背会就能答面试)
Rollup 是一个基于 ES Modules 的 JavaScript 打包工具,以极致的 Tree-shaking 和精简打包体积著称,专门用于生产环境优化,也是 Vite 生产构建的底层工具。
总结
- Rollup = 生产级打包工具
- 最大优势:Tree-shaking 极强,打包体积最小
- Vite 开发用 ESM,生产用 Rollup
- 常用来打包:库、组件、框架(Vue/React)
如果你愿意,我可以把 Vite + Rollup + Webpack 三者关系整理成一张超级好记的面试图!