Vite :从双击 HTML 到现代前端开发
目录一、从一个不对劲的地方说起二、Vite 帮你解决了什么问题2.1 问题一浏览器不认识 TypeScript 和 .vue 文件2.2 问题二管理第三方库很麻烦2.3 问题三写代码时需要实时预览2.4 问题四上线前需要打包优化三、Vite 到底是什么为什么叫 Vite四、Vite 怎么用4.1 创建你的第一个 Vite 项目4.2 项目目录长什么样4.3 三个核心命令4.4 配置文件入门4.5 一个简单的例子从零到看到页面五、Vite 的几个贴心功能5.1 路径别名告别 ../../../5.2 代理解决跨域问题5.3 环境变量区分开发和生产5.4 开箱即用的语言支持六、开发时 vs 上线时Vite 做了不一样的优化七、总结一个类比帮你记住你现在需要记住的一、从一个不对劲的地方说起学完 HTML、CSS、JavaScript 和 TypeScript 之后你可能已经习惯了这样的开发方式写一个 index.html 写一个 style.css 写一个 app.js或 app.ts 在浏览器里直接打开 index.html一切都很自然直到你开始接触 Vue、React 这些框架或者尝试在项目里引入第三方库——你会发现所有教程的开头都是同一句话npmcreate vitelatest然后你的项目就跑在一个http://localhost:5173的地址上不再是双击 HTML 文件打开了。为什么要多此一举Vite 到底在干什么这就是本文要回答的问题。二、Vite 帮你解决了什么问题2.1 问题一浏览器不认识 TypeScript 和 .vue 文件假设你写了一行 TypeScriptconstname:string小明;浏览器看到: string直接就报错了——浏览器只认识 JavaScript不认识 TypeScript。再比如 Vue 的单文件组件.vue文件里面template、script、style混在一起浏览器更不可能看懂。你需要一个工具把这些浏览器不认识的东西翻译成浏览器能认识的东西。Vite 就是干这个的。.ts 文件 → Vite 翻译 → .js 文件 → 浏览器 ✅ .vue 文件 → Vite 翻译 → .js .css → 浏览器 ✅ .scss 文件 → Vite 翻译 → .css 文件 → 浏览器 ✅2.2 问题二管理第三方库很麻烦当你需要引入一个第三方库比如axios发 HTTP 请求用的以前你可能会这样!-- 老办法下载一个 .js 文件放到项目里用 script 引入 --scriptsrc./lib/axios.min.js/script项目依赖的库多了以后版本管理、更新、引用顺序都会变成一团乱麻。Vite 让你可以用现代的方式管理依赖npminstallaxios# 一条命令安装// 在代码里直接 import不需要手动管理 script 标签importaxiosfromaxios;2.3 问题三写代码时需要实时预览你之前写代码的流程可能是修改代码 → 保存 → 切到浏览器 → 刷新页面 → 看效果页面一多来回切窗口、手动刷新效率很低。Vite 提供一个开发服务器它会自动监听文件变化文件一改浏览器自动刷新甚至不刷新整个页面只更新改了的那一小块代码出错时浏览器上直接显示错误信息你只需要保存代码看一眼浏览器就行了。2.4 问题四上线前需要打包优化写完项目后你的src/目录里可能有几十上百个文件还引入了好几 MB 的第三方库。直接把这些文件丢到服务器上访问速度会很慢。Vite 的build命令会把你的项目多个 JS 文件合并成少数几个文件压缩代码去掉空格、注释、缩短变量名优化图片和 CSS输出到一个干净的dist/文件夹这个文件夹才是你真正放到服务器上去的东西。三、Vite 到底是什么现在可以给一个定义了Vite 是一个前端开发工具它帮你做三件事开发时翻译代码并实时预览上线时打包优化代码。它本质上是一个开发服务器 构建工具┌─────────────────────────────────────────┐ │ Vite │ │ │ │ 开发时npm run dev │ │ ├── 启动一个本地服务器localhost:5173 │ │ ├── 实时翻译 TS/Vue/SCSS → JS/CSS/HTML │ │ ├── 监听文件变化自动刷新浏览器 │ │ └── 管理第三方依赖node_modules │ │ │ │ 上线时npm run build │ │ ├── 合并、压缩所有代码 │ │ ├── 处理图片、CSS 等资源 │ │ └── 输出到 dist/ 文件夹 │ └─────────────────────────────────────────┘为什么叫 ViteVite 是法语发音类似veet意思是快。它最大的特点就是快——启动快、修改代码后反应快。四、Vite 怎么用4.1 创建你的第一个 Vite 项目打开终端输入npmcreate vitelatest它会问你几个问题? Project name: › my-first-app # 项目名字随便起 ? Select a framework: › # 选框架Vue / React / 原生 ? Select a variant: › # 选语言TypeScript / JavaScript选完之后按提示操作cdmy-first-app# 进入项目目录npminstall# 安装依赖npmrun dev# 启动开发服务器终端会显示VITE v5.x.x ready in 300 ms ➜ Local: http://localhost:5173/浏览器打开这个地址你就看到了一个运行中的前端项目。4.2 项目目录长什么样my-first-app/ ├── index.html # 入口页面Vite 把它放在根目录 ├── package.json # 项目配置和依赖清单 ├── vite.config.ts # Vite 的配置文件 ├── public/ # 不需要处理的静态文件如图标 │ └── favicon.ico ├── src/ # 你的代码都在这里 │ ├── main.ts # 程序的入口文件 │ ├── App.vue # 根组件 │ ├── components/ # 放组件 │ ├── assets/ # 放需要处理的资源图片、样式等 │ └── style.css # 全局样式 └── node_modules/ # 第三方库安装在这不用手动管几个关键点index.html在根目录不在public/里。它通过script typemodule src/src/main.ts指定了程序入口src/是你写代码的地方所有源码放这里public/放不需要编译的文件比如网站图标Vite 会原样复制到输出目录node_modules/是第三方库的家你不需要进去看也不需要提交到 Git4.3 三个核心命令// package.json 中的 scripts{scripts:{dev:vite,// 启动开发服务器build:vite build,// 打包准备上线preview:vite preview// 本地预览打包后的效果}}npmrun dev# 开发时用 → 打开 http://localhost:5173 写代码npmrun build# 写完后用 → 生成 dist/ 文件夹npmrun preview# 上线前检查 → 预览 dist/ 里的东西是否正常一个典型的工作流npm run dev → 边写代码边看效果 代码写完了npm run build → 生成 dist/ 文件夹 npm run preview → 确认一下打包结果没问题 把 dist/ 文件夹部署到服务器上 → 上线4.4 配置文件入门vite.config.ts是 Vite 的配置文件。刚开始你不需要改它默认值就能用。但了解几个常用配置会有帮助import{defineConfig}fromviteimportvuefromvitejs/plugin-vueexportdefaultdefineConfig({plugins:[vue()],// 告诉 Vite 要处理 .vue 文件server:{port:3000,// 改成你想要的端口号默认 5173open:true,// 启动后自动打开浏览器},resolve:{alias:{:/src,// 设置路径别名以后可以用 /components/xxx 代替 ../../components/xxx},},})4.5 一个简单的例子从零到看到页面假设用 Vue TypeScript 模板创建一个项目后我们来理解一下代码是怎么跑起来的① index.html入口页面!DOCTYPEhtmlhtmllangenhead.../headbodydividapp/div!-- 关键用 ESM 方式引入入口文件 --scripttypemodulesrc/src/main.ts/script/body/html② src/main.ts程序入口import{createApp}fromvueimportAppfrom./App.vuecreateApp(App).mount(#app)// 创建一个 Vue 应用挂载到 index.html 里的 div idapp 上③ src/App.vue根组件template h1{{ message }}/h1 /template script setup langts const message: string Hello Vite! /script style scoped h1 { color: #42b883; } /style整个流程浏览器请求 index.html → 看到 script typemodule src/src/main.ts → 请求 /src/main.ts → Vite 把 main.ts 编译成 JS返回给浏览器 → 浏览器执行发现又 import 了 App.vue → 请求 /src/App.vue → Vite 把 .vue 文件拆成 JS CSS返回给浏览器 → 浏览器渲染出页面这一切都是自动的、按需的你只负责写代码。五、Vite 的几个贴心功能5.1 路径别名告别../../../// vite.config.ts 中配置resolve:{alias:{:/src,},}// 之前import Header from ../../../components/Header.vue// 之后importHeaderfrom/components/Header.vue5.2 代理解决跨域问题开发时前端跑在localhost:5173后端接口跑在localhost:8080浏览器会因为跨域阻止请求。Vite 可以帮你转发// vite.config.tsserver:{proxy:{/api:{target:http://localhost:8080,// 后端地址changeOrigin:true,}}}// 代码里直接写 /apiVite 会自动转发到 http://localhost:8080/apiconstresawaitfetch(/api/users);5.3 环境变量区分开发和生产# .env.development开发环境VITE_API_URLhttp://localhost:8080# .env.production生产环境VITE_API_URLhttps://api.myapp.com// 代码中直接使用console.log(import.meta.env.VITE_API_URL);// 开发时输出 http://localhost:8080// 打包后输出 https://api.myapp.com只有VITE_开头的变量才会暴露给前端代码防止你不小心把密钥泄露出去。5.4 开箱即用的语言支持你写的需要额外安装Vite 处理后的结果.ts文件不需要自动转成.js.scss/.less文件npm install sass自动转成.css.vue文件不需要拆成 JS CSS HTML导入图片import logo from ./logo.png不需要自动返回图片 URL六、开发时 vs 上线时Vite 做了不一样的优化这是一个重要的理解Vite 在开发时和上线时用的是不同的策略。开发时npm run dev上线时npm run build目标启动快改代码秒反应文件小加载快处理方式浏览器请求哪个文件就编译哪个一次性把所有文件编译打包代码不压缩保留可读性压缩、合并、混淆输出在内存中不写入硬盘输出到dist/文件夹为什么开发时不打包因为打包很慢。如果每次启动都要把所有文件打包一次等你项目大了可能得等几十秒。Vite 的做法是浏览器要什么我就给什么现要现编译。这样启动就是秒级的事。为什么上线时要打包因为用户访问你的网站时浏览器一次性下载几十个零散的小文件会很慢每个文件都是一次 HTTP 请求。打包后合并成几个大文件加载速度就快多了。七、总结一个类比帮你记住概念类比Vite你的私人开发助理npm run dev助理帮你搭好本地环境实时预览你的代码npm run build助理帮你把代码整理、压缩、打包准备发布vite.config.ts你告诉助理按这个规矩办事你现在需要记住的# 创建项目npmcreate vitelatest# 进入项目安装依赖cd项目名npminstall# 开始写代码npmrun dev# 写完了打包上线npmrun buildVite 本质上就是帮你解决了从写完代码到代码在浏览器里跑起来之间的所有麻烦事。你只管写代码剩下的事交给它。

相关新闻

Ubuntu SSH服务安装与配置全指南

Ubuntu SSH服务安装与配置全指南

1. 问题现象与初步排查 最近在Ubuntu服务器上配置SSH服务时遇到了一个典型问题:执行 systemctl start ssh 命令时系统提示"Unit ssh.service not found"。这个报错意味着系统无法识别SSH服务单元,通常发生在以下几种情况: SSH服…

2026/7/26 6:22:33阅读更多 →
零代码AI数据分析系统:让科研统计效率提升90%

零代码AI数据分析系统:让科研统计效率提升90%

1. 项目背景与核心价值去年在帮某高校科研团队做数据分析时,我发现一个普遍痛点:临床医学、心理学等实证学科的研究者,往往需要花费70%以上的时间在数据清洗、统计分析和图表制作上。一位心理学副教授曾向我吐槽:"我们团队三…

2026/7/26 6:20:33阅读更多 →
小白python入门 - 37. 网页抓取与解析

小白python入门 - 37. 网页抓取与解析

1. 本课定位:是什么、为何重要 > 前几课我们一直在和「程序可读的接口」打交道:HTTP 五件套、requests、并发与协程。可是世界上仍有大量信息以网页 HTML 的形式公开——文档站、公告列表、课程目录。若数据就在页面源码里,你还不会「把标…

2026/7/26 6:20:33阅读更多 →
Kimi K3长文本AI模型:算力需求、本地部署与API实践指南

Kimi K3长文本AI模型:算力需求、本地部署与API实践指南

这次我们来看一个近期在AI圈引发热议的话题——Kimi K3爆火后出现的"算力荒"现象。作为月之暗面(Moonshot AI)推出的新一代长文本处理模型,Kimi K3凭借其200万字上下文窗口和强大的代码生成能力迅速走红,但随之而来的是…

2026/7/26 7:26:40阅读更多 →
深度学习与认知雷达融合系统的设计与优化

深度学习与认知雷达融合系统的设计与优化

1. 认知雷达与深度学习融合系统概述在雷达信号处理领域,认知雷达系统通过实时感知环境变化并动态调整发射参数,显著提升了复杂电磁环境下的目标检测性能。而深度学习技术凭借其强大的特征提取和模式识别能力,为雷达信号处理带来了革命性的突破…

2026/7/26 7:26:40阅读更多 →
【工业级Attention优化手册】:GPU显存降低47%,推理提速3.2倍的8个硬核技巧

【工业级Attention优化手册】:GPU显存降低47%,推理提速3.2倍的8个硬核技巧

更多请点击: https://intelliparadigm.com 第一章:Attention机制的本质与工业落地痛点 Attention机制并非一种具体模型,而是一种**可微分的动态权重分配范式**——它通过计算查询(Query)与键(Key&#xff…

2026/7/26 7:26:40阅读更多 →
OmniRoute:用“配额感知自动回退“聚合 290+ AI 供应商的免费开源网关

OmniRoute:用“配额感知自动回退“聚合 290+ AI 供应商的免费开源网关

现在我已经收集了足够的信息,可以输出完整的学习笔记了。 OmniRoute:用"配额感知自动回退"聚合 290 AI 供应商的免费开源网关 核心观点 OmniRoute 想解决的问题极其具体:当你同时拥有十几个 AI 服务的免费配额时,手动…

2026/7/26 7:26:40阅读更多 →
DXVK:跨越图形API鸿沟的桥梁,让Windows游戏在Linux上重生

DXVK:跨越图形API鸿沟的桥梁,让Windows游戏在Linux上重生

DXVK:跨越图形API鸿沟的桥梁,让Windows游戏在Linux上重生 【免费下载链接】dxvk Vulkan-based implementation of D3D8, 9, 10 and 11 for Linux / Wine 项目地址: https://gitcode.com/gh_mirrors/dx/dxvk 你是否曾梦想在Linux系统上流畅运行Win…

2026/7/26 7:26:40阅读更多 →
算法:贪心算法

算法:贪心算法

引言 376. 摆动序列 - 力扣(LeetCode) 55. 跳跃游戏 - 力扣(LeetCode) 45. 跳跃游戏 II - 力扣(LeetCode) 134. 加油站 - 力扣(LeetCode) 135. 分发糖果 - 力扣(Lee…

2026/7/26 7:24:40阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/26 0:01:28阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/26 0:01:28阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/26 0:01:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/25 23:03:25阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/25 19:03:04阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/25 19:03:04阅读更多 →