前言
学 Vue 开发,一定会接触两个脚手架工具:vue-cli 和 Vite。
很多同学不知道:
-
为什么 Vue2 大多用 vue-cli,Vue3 推荐 Vite?
-
为什么 Vite 启动速度秒杀 vue-cli?
-
两者底层原理、打包机制、热更新区别到底在哪?
-
面试被问 vue-cli 和 Vite 的区别 怎么满分回答?
今天一篇文章彻底讲透,看完彻底拿捏 Vue 工程化面试 + 实战。
一、两者定位一句话区分
-
Vue CLI(vue-cli) :Vue2 官方脚手架,基于 Webpack 构建,成熟稳定、兼容性强,目前处于维护模式。
-
Vite :Vue3 官方推荐新一代构建工具,基于 ESM + esbuild + Rollup,极速启动、秒级热更新,是现在企业新项目首选。
官方现状 :Vue 团队已不再推荐 vue-cli 新建项目,所有新项目统一使用 Vite。
二、底层核心原理区别(最重要)
1. Vue CLI 原理(Webpack 全量打包)
vue-cli 是对 Webpack 的上层封装。
开发环境启动流程:
启动项目 → Webpack 一次性打包所有文件 → 编译、转译、合并 → 开启开发服务器
哪怕你只改一行代码,项目启动前必须把所有文件全部打包一遍,项目越大启动越慢。
热更新机制:
文件变更 → Webpack 重新编译对应模块 → 刷新模块依赖链,大型项目会有明显卡顿延迟。
2. Vite 原理(按需编译 + 原生 ESM)
Vite 完全抛弃 Webpack,采用两套核心机制:
-
开发环境:浏览器原生 ESM 按需加载
-
依赖预构建:esbuild 极速处理第三方包
启动流程:
启动服务 →不打包任何源码 → 浏览器按需请求文件 → Vite 实时编译返回
所以 Vite 无论项目多大,启动都是秒开。
热更新机制:
基于 模块精准更新 ,只更新改动的单个模块,不牵连其他文件,毫秒级 HMR。
三、全方位详细对比表(面试直接背)
| 对比维度 | Vue CLI(vue-cli) | Vite |
|---|---|---|
| 底层内核 | 基于 Webpack | esbuild(开发) + Rollup(打包) + 原生 ESM |
| 适用版本 | Vue2 为主,兼容 Vue3 | Vue3 首选,兼容 Vue2 |
| 冷启动速度 | 慢(几秒~几十秒) | 极快(毫秒级、秒开) |
| 热更新 HMR | 慢,项目越大越卡 | 极速,精准模块更新 |
| 构建模式 | 启动前全量打包 | 启动不打包,浏览器按需加载 |
| 配置文件 | vue.config.js(Webpack 封装) | vite.config.js(简洁轻量) |
| 生产打包工具 | Webpack | Rollup(打包产物更小、更稳) |
| Tree-Shaking | 支持较弱 | 原生强力支持 |
| 生态成熟度 | 极高,老项目全覆盖 | 现代主流,新项目全覆盖 |
| 官方状态 | 停止迭代、仅维护 | 持续迭代、官方主推 |
四、各自优缺点总结
1. Vue CLI 优缺点
✅ 优点
-
Webpack 生态极其成熟,插件多、踩坑少
-
兼容老旧浏览器、低版本依赖
-
企业大量老旧 Vue2 项目,全部基于 vue-cli
❌ 缺点
-
冷启动慢,项目越大越卡
-
热更新延迟高,开发体验差
-
配置繁琐,webpack 打包机制笨重
-
官方已停止更新,属于淘汰技术栈
2. Vite 优缺点
✅ 优点
-
开发环境极速启动、秒级热更新
-
基于原生 ESM,工程理念更先进
-
esbuild 预构建依赖,速度碾压 Webpack
-
Rollup 打包,产物体积更小、性能更好
-
配置简洁、轻量、现代化
❌ 缺点
-
部分老旧 Webpack 专属插件不兼容
-
极低版本浏览器兼容需要额外配置
五、开发场景如何选择?(企业标准)
🔹 用 Vue CLI 的场景
-
维护 老旧 Vue2 老项目
-
项目依赖极度老旧、必须依赖 Webpack 插件
-
需要兼容非常旧的浏览器环境
🔹 用 Vite 的场景(2026企业新标准)
-
所有新建 Vue3 项目
-
追求开发速度、高效开发体验
-
中大型前端项目,模块多、组件多
-
需要轻量、简洁、现代化工程配置
六、面试满分标准答案
Vue CLI 是 Vue2 官方脚手架,底层基于 Webpack,启动时需要全量打包所有文件,冷启动慢、热更新延迟高,优点是生态成熟、兼容性强,目前官方已停止迭代。Vite 是新一代前端构建工具,开发环境基于浏览器原生 ESM 按需加载,使用 esbuild 预构建依赖,实现秒级启动和毫秒级热更新;生产环境基于 Rollup 打包,产物体积更小、性能更优,是 Vue3 官方推荐的新标准,适合所有现代化前端项目开发。
总结
1、vue-cli = Webpack 全量打包 = 慢、成熟、老旧项目用
2、Vite = ESM + esbuild + Rollup = 快、现代、新项目首选
3、现在企业开发:新项目一律 Vite,老项目保留 vue-cli
4、面试重点:打包机制、热更新原理、底层内核、官方状态