vite与vue的cli的区别

Vite 和 Vue CLI(基于 Webpack)确实都能提供本地开发服务器(dev server),但它们的核心设计理念、构建机制和性能表现有本质区别


相同点(你感受到的"差不多")

功能 Vite Vue CLI
启动本地开发服务器 vite vue-cli-service serve
热更新(HMR)
支持 Vue 单文件组件(.vue)
内置 Babel / TypeScript 支持

所以日常开发体验上,命令行操作和基本功能确实"看起来差不多"


核心区别(本质不同)

维度 Vite Vue CLI (Webpack)
底层原理 原生 ES 模块(ESM) + 开发时按需编译 打包整个应用 → 启动服务
启动速度 极快(秒开,与项目大小无关) 🐢 (项目越大越慢,需打包所有依赖)
热更新(HMR) 瞬间更新(只更新改的文件) 🐢 较慢(需重新构建模块依赖图)
依赖预构建 esbuild(Go 编写,超快)预构建 npm 包 Webpack 打包所有依赖
生产构建 默认用 Rollup Webpack
配置方式 vite.config.js(更简洁) vue.config.js(Webpack 封装)
适用范围 不仅限 Vue!支持 React、Svelte、Lit 等 专为 Vue 设计(虽可配其他,但非主流)

举个形象的例子

Vue CLI(Webpack)像"盖楼前先造完整模型"
  • 启动时:把所有代码 + 依赖 全部打包成一个 bundle
  • 改一行代码:重新分析整个依赖图 → 重新打包受影响部分
  • 项目越大,等待越久
Vite 像"边盖边用,即拿即用"
  • 启动时:不打包 !直接让浏览器通过 <script type="module"> 加载源文件
  • 依赖(node_modules)用 esbuild 提前转成 ESM 格式(一次性的)
  • 改一行代码:浏览器直接拉取这个新文件,无需打包
  • 所以无论项目多大,启动都是秒级!

💡 Vite 的口号就是:No bundling during development!


性能对比(实测数据)

项目规模 Vue CLI 启动时间 Vite 启动时间
小型(10个组件) ~2s ~300ms
中型(50+组件 + 路由 + 状态管理) ~8s ~400ms
大型(100+组件) ~20s+ ~500ms

Vite 的优势随项目增大而爆炸式放大


那为什么你会觉得"差不多"?

  1. 你用的是小项目 → 两者速度差异不明显

  2. 日常操作命令相似

    bash 复制代码
    # Vue CLI
    vue create my-app
    cd my-app
    npm run serve
    
    # Vite
    npm create vue@latest  # 或 npm init vite
    cd my-app
    npm run dev
  3. 最终产出都是运行在浏览器里的 Vue 应用 → 用户无感


结论:不只是"本地服务",而是开发范式的升级

Vue CLI Vite
定位 Vue 官方脚手架(基于 Webpack) 下一代前端构建工具(框架无关)
重点 "开箱即用的 Vue 工程方案" "极致的开发体验 + 未来标准(ESM)"
适合 老项目维护、需要 Webpack 深度定制 新项目首选、追求开发效率

📌 官方态度

Vue 3 官方文档默认推荐 Vite,Vue CLI 已进入维护模式(不再主推)。


💡 建议

  • 新项目一律用 Vitenpm create vue@latest
  • 老 Vue 2 项目 可继续用 Vue CLI
  • 如果想深入理解,试试在大型项目中分别启动两者 ------ 你会立刻感受到"天壤之别"

Vite 不是"另一个本地服务器",而是 用现代浏览器能力重构了前端开发工作流

相关推荐
摘星编程3 小时前
OpenHarmony + RN:Placeholder文本占位
javascript·react native·react.js
a1117764 小时前
医院挂号预约系统(开源 Fastapi+vue2)
前端·vue.js·python·html5·fastapi
0思必得04 小时前
[Web自动化] Selenium处理iframe和frame
前端·爬虫·python·selenium·自动化·web自动化
计算机毕设VX:Fegn08954 小时前
计算机毕业设计|基于springboot + vue蛋糕店管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
行走的陀螺仪6 小时前
uni-app + Vue3编辑页/新增页面给列表页传参
前端·vue.js·uni-app
摘星编程6 小时前
React Native + OpenHarmony:Spinner旋转加载器
javascript·react native·react.js
We་ct7 小时前
LeetCode 205. 同构字符串:解题思路+代码优化全解析
前端·算法·leetcode·typescript
2301_812731417 小时前
CSS3笔记
前端·笔记·css3
ziblog7 小时前
CSS3白云飘动动画特效
前端·css·css3
越努力越幸运5087 小时前
CSS3学习之网格布局grid
前端·学习·css3