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

前端学习笔记(15)Vue 使用Vite构建项目

笔记:【Vue使用Vite构建项目】

2026年5月19日 22:57

平时主要接触vue2的项目,之前对webpack的相关知识也做了梳理。
webpack相比之前初学vue3时用的vite,还是相对慢了点。
比如npm run dev启动开发服务器,项目大点要30~60秒左右。
今天决定深入下之前接触过的vite构建工具。

概述

  • Vite 是 Vue3 官方推荐的构建工具,替代 Webpack/vue-cli
  • 核心原理:
    • 开发环境利用浏览器原生 ES Modules,跳过打包
    • 生产环境用 Rollup 打包
  • 开发服务器启动毫秒级(不打包),热更新毫秒级(只更新变更模块)
  • Vue2 项目用 Webpack/vue-cli,Vue3 项目用 Vite

如何创建一个新项目

# 创建 Vue3 项目(官方推荐,会配置好 Router/Pinia/ESLint)npmcreate vue@latest# 或用 vite 直接创建(更轻量,需要手动配置)npmcreate vite@latest my-vue-app ----templatevuenpmcreate vite@latest my-vue-app ----templatevue-ts

配置文件 vite.config.js

Vite 的配置文件,对应 Webpack 体系下的 vue.config.js

import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'import{fileURLToPath,URL}from'node:url'exportdefaultdefineConfig({// 1. 插件plugins:[vue(),],// 2. 路径别名resolve:{alias:{'@':fileURLToPath(newURL('./src',import.meta.url))}},// 3. 开发服务器server:{port:3000,// 端口host:'0.0.0.0',// 允许外部访问open:true,// 启动时打开浏览器cors:true,// 跨域proxy:{// 代理(解决接口跨域)'/api':{target:'http://localhost:8080',changeOrigin:true,rewrite:(path)=>path.replace(/^\/api/,'')}}},// 4. 构建配置build:{outDir:'dist',// 输出目录assetsDir:'assets',// 静态资源目录sourcemap:false,// 是否生成 sourcemapminify:'esbuild',// 压缩方式(默认 esbuild,可选 terser)chunkSizeWarningLimit:500,// chunk 大小警告阈值rollupOptions:{// Rollup 配置output:{manualChunks:{// 手动分包'vendor':['vue','vue-router','pinia'],'element-plus':['element-plus']}}}},// 5. 环境变量前缀envPrefix:'VITE_',// 6. CSS 配置// 把variables.scss里的样式,注入每一个vue文件css:{preprocessorOptions:{scss:{additionalData:`@use "@/styles/variables.scss" as *;`}}}})

常用的import包

importvuefrom'@vitejs/plugin-vue'// 核心,支持 .vue 单文件组件importAutoImportfrom'unplugin-auto-import/vite'// Vue API 自动导入(ref、computed 等)importComponentsfrom'unplugin-vue-components/vite'// Element-Plus 等组件自动按需导入// 写在 plugins 数组中AutoImport({resolvers:[ElementPlusResolver()],imports:['vue','vue-router','pinia']// 自动导入 ref, reactive, computed 等,无需手动 import}),Components({resolvers:[ElementPlusResolver()]// 自动导入 el-table, el-button 等组件,无需手动 import})

环境变量

类似webpack,vite也对不同环境(开发/生产/测试)有不同的配置文件:

  • .env# 所有环境生效
  • .env.development# npm run dev 时生效
  • .env.production# npm run build 时生效
  • .env.staging# 自定义环境,通过 --mode staging 指定

.env文件的变量命名,需要遵守VITE_XXX的规范(这个前缀是上面配置文件的第五个部分配的)

# 只有 VITE_ 开头的变量才会暴露给前端代码VITE_API_BASE=http://localhost:8080VITE_APP_TITLE=My App# 非 VITE_ 开头的变量只在 Node 端可用,前端无法访问SECRET_KEY=xxx# 前端访问不到

这些变量的使用,要import.meta.env.XXX

console.log(import.meta.env.VITE_API_BASE)// 自定义变量console.log(import.meta.env.VITE_APP_TITLE)// 自定义变量console.log(import.meta.env.MODE)// 当前模式:development / productionconsole.log(import.meta.env.DEV)// 是否开发环境(布尔值)console.log(import.meta.env.PROD)// 是否生产环境(布尔值)console.log(import.meta.env.BASE_URL)// 部署基础路径

vite的命令

和webpack基本一样

# 开发服务器npmrun dev# 生产构建npmrun build# 预览生产构建(本地模拟生产环境)npmrun preview

pnpm

另外,最近还看到有项目是用pnpm构建的。
pnpm是npm的升级替代,命令有少许语法差异,核心优势是快和省空间。
pnpm的包,是整个硬盘里存一份,然后每个项目用硬链接指向这一份。

操作npmpnpm
安装依赖npm installpnpm install
添加包npm i axiospnpm add axios
添加开发依赖npm i -D vitepnpm add -D vite
运行脚本npm run devpnpm dev(可省略 run)
删除包npm uninstall axiospnpm remove axios
执行一次性命令npx create-vuepnpm dlx create-vue

教学文档项目,一般我是pnpm docs:preview打开。
这个命令,是类似宏的,写在tutorial\crrg-uac-front\package.json文件。
比如preview,实际上是pnpm build:local && vite preview这一串。

http://www.jsqmd.com/news/864468/

相关文章:

  • 如何为Hermes Agent配置Taotoken作为自定义模型提供商以实现功能扩展
  • 零基础转行网安靠谱吗?2026 薪资标准、工作内容及发展前景
  • 喜提兰洽会官方认证!走进佳欣文化,读懂深耕多年的初心与实力
  • ElevenLabs浙江话支持现状深度评测:仅覆盖58%吴语核心变体?我们用12地市语料库验证了真相
  • `startup_gcc.S` 详细介绍(D13x):从复位到内核的完整路径
  • 5分钟掌握全网盘直链下载:LinkSwift终极提速指南
  • Slack线程内直接触发Lindy流程审批?——2024最新Contextual Action集成方案(支持OpenID Connect身份透传)
  • CFD仿真散记
  • Java并发编程 并发可见性问题 volatile
  • 从文字对话到具象共情:具身 Agent 如何颠覆健康交互认知
  • Taotoken的模型广场如何帮助我快速选型与切换模型
  • 综合心理健康测试平台测评 专业全面心理评估公众号深度评测 - 时讯资讯
  • 简单谈谈ios开发中的UI
  • 终极指南:OBS Mac虚拟摄像头插件的完整使用教程
  • 使用Nodejs和Taotoken构建一个简单的AI对话服务端应用
  • 2026年4月惠州市专利申请机构推荐,这些做得好别错过,高新企业申报/惠州市商标申请,惠州市专利申请企业哪家好 - 品牌推荐师
  • 3分钟掌握R3nzSkin:英雄联盟国服免费全皮肤终极方案
  • OpenPLC Editor:开源工业自动化编程的完整解决方案
  • 企业级应用整合大模型时如何利用Taotoken实现成本与稳定性管控
  • rk3576 sai tdm调试
  • NotebookLM可信度评估:从论文级可信论证到生产环境SLA保障——一位首席AI架构师的11年踩坑笔记(含3份脱敏审计日志)
  • 2026 全网超详细网络安全学习路线,零基础一步步成长为实战专家,全套免费教程
  • 2026年全网最全降AI率保姆级教程:高效降低AI! - 降AI实验室
  • 咖啡一杯,Token 无限,Real-Time Cafe 深圳站来了!新增「硬件晒晒桌」与「AI 桌游试玩桌」
  • 使用嘉立创EDA画PCB板时,布线遇到“违反DRC规则,请注意白色边框”问题的解决办法
  • 如何高效破解Cursor Pro限制:5步激活AI编程助手的终极方案
  • 网盘直链解析神器:八大平台免登录高速下载终极解决方案
  • QMCDecode:3步解锁你的QQ音乐加密文件
  • 宣城有实力的网络公司推荐
  • RLVR 技术深挖:强化学习微调大模型的范式转变与代码实战