当前位置: 首页 > news >正文

Vue3 项目创建实战:Vue CLI 与 Vite 深度对比与操作指南

在 Vue3 生态中,项目构建工具的选择直接影响开发效率与项目性能。作为前端开发者,你是否曾困惑于 Vue CLI 与 Vite 的取舍?为什么同样是创建 Vue3 项目,两者的体验却大相径庭?本文将从实战出发,带你全面掌握两种工具的使用方法,深入剖析其底层差异,助你在不同场景下做出最优选择。

一、前置知识:为什么需要构建工具?

Vue3 作为渐进式框架,虽然支持直接通过<script>标签引入使用,但在实际开发中,我们需要处理模块化、代码压缩、热更新等问题。构建工具就像 "项目管家",帮我们完成这些复杂工作:

  • 模块化管理:支持 ES Module、CommonJS 等模块规范
  • 资源处理:解析 CSS、图片、字体等非 JS 资源
  • 开发效率:提供热更新、代码检查、调试支持
  • 生产优化:代码压缩、Tree-Shaking、按需加载

Vue CLI 和 Vite 正是这类工具,但它们的实现思路却截然不同。

二、Vue CLI 创建 Vue3 项目全流程

Vue CLI 是 Vue 官方早期推出的标准化工具,基于 Webpack 构建,适合中大型项目开发。

2.1 环境准备

首先确保安装了 Node.js(推荐 v14.0.0+),可通过以下命令检查:

node -v # 查看Node版本

npm -v # 查看npm版本

安装 Vue CLI(注意 Vue CLI 4 + 才支持 Vue3):

npm install -g @vue/cli

# 或使用yarn

yarn global add @vue/cli

验证安装成功:

vue --version # 显示@vue/cli 4.x或5.x即成功

2.2 创建项目

执行创建命令,输入项目名称(此处以vue3-cli-demo为例):

vue create vue3-cli-demo

关键配置选择(按键盘上下键切换选项,空格键选择)

  1. 选择手动配置:

    ? Please pick a preset:Default ([Vue 2] babel, eslint)Default (Vue 3) ([Vue 3] babel, eslint)
    ❯ Manually select features
    
  2. 必选核心功能(按需求勾选):

    ? Check the features needed for your project:
    ❯◉ Babel
    ◉ TypeScript (可选,推荐大型项目)
    ◉ Progressive Web App (PWA) Support (可选)
    ◉ Router (路由)
    ◉ Vuex (状态管理)
    ◉ CSS Pre-processors (CSS预处理器)
    ◉ Linter / Formatter (代码检查)
    ◉ Unit Testing (单元测试,可选)
    ◉ E2E Testing (端到端测试,可选)
    
  3. 选择 Vue 版本:

    ? Choose a version of Vue.js that you want to start the project with2.x
    ❯ 3.x
    
  4. 其他配置建议:

    • TypeScript:选择Yes使用 class-style 组件语法
    • Babel:选择Yes与 TypeScript 配合使用
    • Router:选择Yes启用 history 模式(需后端配合)
    • CSS 预处理器:推荐Sass/SCSS (with dart-sass)
    • 代码检查:推荐ESLint + Prettier
    • 检查时机:Lint on save(保存时检查)
    • 配置文件存放:In dedicated config files(单独文件管理)
    • 是否保存预设:根据需求选择YesNo

等待依赖安装完成(首次可能较慢,可配置 npm 镜像加速)。

2.3 项目结构解析

vue3-cli-demo/
├── public/               # 静态资源(直接复制到dist根目录)
│   ├── favicon.ico
│   └── index.html        # 入口HTML
├── src/
│   ├── assets/           # 源代码中的资源(会被webpack处理)
│   ├── components/       # 组件
│   ├── router/           # 路由配置
│   ├── store/            # 状态管理
│   ├── views/            # 页面组件
│   ├── App.vue           # 根组件
│   └── main.ts           # 入口文件
├── .eslintrc.js          # ESLint配置
├── babel.config.js       # Babel配置
├── package.json          # 项目依赖与脚本
└── vue.config.js         # Vue CLI配置(可自定义webpack)

核心差异点:

  • publicassets:前者资源不经过 webpack 处理,后者会被打包
  • vue.config.js:提供 webpack 配置的上层封装,简化配置难度

2.4 运行与构建

启动开发服务器(默认端口 8080):

cd vue3-cli-demo

npm run serve

构建生产版本(输出到dist目录):

npm run build

2.5 Vue CLI 工作原理示意

Vue CLI 基于 Webpack,其核心特点是先打包再服务:开发时会将所有模块预先编译打包,再启动服务器。这种方式在项目规模扩大后,启动速度会明显变慢。

三、Vite 创建 Vue3 项目全流程

Vite 是 Vue 作者尤雨溪推出的新一代构建工具,以 "极速开发体验" 为卖点,采用浏览器原生 ES 模块支持,适合快速迭代的项目。

3.1 环境准备

Vite 对 Node.js 版本要求更高(v14.18.0+),检查版本:

node -v # 确保≥v14.18.0

Vite 无需全局安装,可直接通过npm create命令创建项目。

3.2 创建项目

执行创建命令(Vite 官方推荐方式):

npm create vite@latest

交互式配置步骤

  1. 输入项目名称(此处以vue3-vite-demo为例):

    ? Project name: » vue3-vite-demo
    
  2. 选择框架:

    ? Select a framework: » - Use arrow-keys. Return to submit.VanillaReactPreactLitSvelte
    ❯ Vue
    
  3. 选择变体(是否使用 TypeScript):

    ? Select a variant: » - Use arrow-keys. Return to submit.
    ❯ VueVue + TypeScript
    

进入项目目录并安装依赖:

cd vue3-vite-demo

npm install

3.3 项目结构解析

vue3-vite-demo/
├── public/               # 静态资源(与Vue CLI一致)
│   └── favicon.ico
├── src/
│   ├── assets/           # 资源文件
│   ├── components/       # 组件
│   ├── App.vue           # 根组件
│   └── main.js           # 入口文件
├── .eslintrc.cjs         # ESLint配置
├── index.html            # 入口HTML(注意位置:根目录)
├── package.json
└── vite.config.js        # Vite配置文件

核心差异点:

  • index.html在根目录:Vite 将其作为入口,更符合浏览器原生逻辑
  • 无默认路由 / 状态管理:需手动安装(npm i vue-router@4 pinia
  • 配置文件更简洁:vite.config.js基于 Rollup,配置更直观

3.4 运行与构建

启动开发服务器(默认端口 5173):

npm run dev

构建生产版本(输出到dist目录):

npm run build

预览生产版本:

npm run preview # Vite特有的预览命令,无需额外服务器

3.5 Vite 工作原理示意

Vite 的核心创新是按需编译

  1. 开发时不打包所有文件,而是直接启动服务器
  2. 浏览器请求某个模块时,Vite 才即时编译该模块
  3. 对第三方依赖(如 vue)进行预构建,转为浏览器可直接使用的 ES 模块

四、核心差异深度对比

维度Vue CLIVite
底层工具Webpack开发环境:原生 ES 模块;生产:Rollup
启动速度较慢(全量打包)极快(按需编译)
热更新速度随项目规模下降保持快速(只更新修改的模块)
配置复杂度中等(webpack 封装)低(Rollup 风格配置)
生态兼容性极佳(Webpack 生态成熟)良好(持续完善)
适用场景大型复杂项目、需要 Webpack 特性中小型项目、快速迭代、开发体验优先
生产构建性能优秀(Webpack 优化成熟)优秀(Rollup Tree-Shaking 更强)
学习成本较高(需了解 Webpack 概念)较低(更贴近浏览器原生)

性能对比示意图

从图中可见,随着项目规模增长,Vue CLI 的启动时间显著增加,而 Vite 的启动时间几乎保持稳定,这是两者最直观的差异。

五、如何选择?实战建议

  1. 新项目首选 Vite

    • 开发体验优势明显(秒级启动、即时热更新)
    • 配置更简洁,学习成本低
    • 生产构建产物更优(Rollup 的 Tree-Shaking 更高效)
  2. 继续使用 Vue CLI 的场景

    • 项目依赖大量 Webpack 专属插件
    • 团队已熟练掌握 Vue CLI+Webpack 生态
    • 需要复杂的构建流程定制(Webpack loader 生态更成熟)
  3. 迁移策略

    • 小型项目:直接用 Vite 重构,成本低
    • 大型项目:可先在新功能模块尝试 Vite,逐步迁移

六、总结

Vue CLI 和 Vite 作为 Vue3 生态的两大构建工具,各有侧重:

  • Vue CLI 代表 "稳定成熟",基于 Webpack 生态,适合复杂项目
  • Vite 代表 "未来趋势",基于原生 ES 模块,专注开发体验

无论选择哪种工具,核心目标都是提升开发效率与项目性能。随着 Vite 生态的不断完善,它已成为 Vue3 项目的主流选择,但了解 Vue CLI 的工作原理仍有助于深入理解前端构建流程。

希望本文的实战指南能帮你快速上手两种工具,在实际开发中做出最合适的技术选型!

http://www.dtcms.com/a/498919.html

相关文章:

  • C++|手写shared_ptr实现
  • Python 数据分析入门:Pandas vs NumPy 全方位对比
  • 学做网站能赚钱吗信息平台网站模板
  • Redis为什么是单线程的
  • layuiadmin与laravel 12 前后端分离nginx配置
  • IDEA在文件中查找快捷键失效
  • 整合知识图谱与大语言模型:下一代药物发现的革命性技术
  • 详解TCP(详细版)
  • TCMalloc原理解析(上)
  • OpenCV深度学习:目标检测、人脸识别与智能视频分
  • 电子商务网站有哪些内容wordpress漏洞2019
  • FileNotFoundError: [WinError 3] 系统找不到指定的路径。
  • qq音乐怎么做mp3下载网站安阳县教育局官网
  • 深度学习进阶(七)——智能体的进化:从 LLM 到 AutoGPT 与 OpenDevin
  • Redis面试八股
  • 做网站从设计到上线流程山西专业网站建设价目
  • 排序算法:详解插入排序
  • [MLflow] 部署OpenAI聊天网关 | 令牌桶算法限流 | 分布式追踪 | Trace Span
  • 【010】智能图书系统
  • LeetCode 刷题【124. 二叉树中的最大路径和】
  • linux 的文件结构
  • stack,queue,咕咕咕!
  • 做网站不实名认证可以吗佛山城市建设工程有限公司
  • 构建基于大语言模型的智能数据可视化分析工具的学习总结
  • Android 架构演进全解析:MVC、MVP、MVVM、MVI 图文详解
  • 网站后台免费模板下载艺术字体在线生成器转换器
  • HC32 操作GPIO点亮LED(HC库)
  • 如何用python来做小游戏
  • 捡到h3开发板,做了个视频小车(二),御游追风plus做遥控器
  • U盘安装群晖RR引导