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

Vite6 + Vue3 + TS 完整版标准配置模板

文章目录

    • 一、安装依赖
    • 二、vite.config.ts(Vite6 专用,兼容最新规范)
    • 三、tsconfig.json (适配别名+Vite6)
    • 四、tsconfig.node.json
    • 五、环境变量文件示例
      • .env(公共基础变量)
      • .env.development(开发环境)
      • .env.production(生产环境)
    • 六、package.json scripts
    • 七、关键说明(Vite6 专属要点)

一、安装依赖

# 核心npminstallvite vue @vitejs/plugin-vue-D# TS 类型支持npminstalltypescript vue-tsc @vue/tsconfig-D# 路径别名需要npminstall@types/node-D

二、vite.config.ts(Vite6 专用,兼容最新规范)

import{defineConfig,loadEnv}from'vite'importvuefrom'@vitejs/plugin-vue'import{resolve}from'path'// https://vitejs.dev/config/exportdefaultdefineConfig(({command,mode})=>{// 读取环境变量,Vite6 推荐写法constenv=loadEnv(mode,process.cwd(),'')constisBuild=command==='build'return{plugins:[vue()],// 1. 路径别名(@ 指向 src)resolve:{alias:{'@':resolve(__dirname,'src'),},// Vite6 默认解析条件,无需改动conditions:['module','browser']},// 本地开发服务server:{host:'0.0.0.0',port:3000,open:true,proxy:{}// 可自行配置跨域代理},// 构建打包核心配置build:{outDir:'dist',emptyOutDir:true,// 2. CSS 压缩 + 拆分单独css文件cssCodeSplit:true,cssMinify:isBuild?'esbuild':false,// 3. 分包策略(vendor第三方包单独打包)rollupOptions:{output:{// 静态资源分类打包chunkFileNames:'js/[name]-[hash].js',entryFileNames:'js/[name]-[hash].js',assetFileNames:(assetInfo)=>{constext=assetInfo.name?.split('.').pop()if(/css/.test(ext!))return'css/[name]-[hash].css'if(/png|jpe?g|svg|gif|tiff|bmp|ico/.test(ext!))return'img/[name]-[hash].[ext]'return'assets/[name]-[hash].[ext]'},// 第三方依赖分包manualChunks:{vue:['vue','vue-router','pinia']}}},// 关闭sourcemap 生产环境sourcemap:false,// 限制单文件大小警告chunkSizeWarningLimit:1000},// 环境变量前缀,默认VITE_envPrefix:'VITE_'}})

三、tsconfig.json (适配别名+Vite6)

{"extends":"@vue/tsconfig/tsconfig.web.json","compilerOptions":{"target":"ES2020","useDefineForClassFields":true,"module":"ESNext","lib":["ES2020","DOM","DOM.Iterable"],"skipLibCheck":true,/* 路径别名映射 */"baseUrl":".","paths":{"@/*":["src/*"]},"moduleResolution":"bundler","allowImportingTsExtensions":true,"resolveJsonModule":true,"isolatedModules":true,"noEmit":true,"jsx":"preserve","strict":true,"noUnusedLocals":true,"noUnusedParameters":true,"noFallthroughCasesInSwitch":true},"include":["src/**/*.ts","src/**/*.d.ts","src/**/*.tsx","src/**/*.vue"],"references":[{"path":"./tsconfig.node.json"}]}

四、tsconfig.node.json

{"extends":"@vue/tsconfig/tsconfig.node.json","compilerOptions":{"skipLibCheck":true,"module":"ESNext","moduleResolution":"bundler","allowSyntheticDefaultImports":true},"include":["vite.config.ts"]}

五、环境变量文件示例

.env(公共基础变量)

VITE_APP_TITLE=Vite6项目

.env.development(开发环境)

VITE_API_BASE_URL=http://localhost:8080/api

.env.production(生产环境)

VITE_API_BASE_URL=https://api.xxx.com

六、package.json scripts

"scripts":{"dev":"vite","build":"vue-tsc && vite build","preview":"vite preview"}

七、关键说明(Vite6 专属要点)

  1. 不再需要手动引入splitVendorChunkPlugin,改用rollupOptions.manualChunks分包;
  2. Sass 若使用旧写法报错,在css.preprocessorOptions.sass.api: "legacy"临时兼容;
  3. 插件必须为 ESM 格式,module.exports插件会直接失效;
  4. 如需开启Rolldown极速打包,在build内添加:
build:{rollup:'rolldown'}
  1. 别名@同时配置 Vite + TS 两处,TS 不会报路径找不到。
http://www.jsqmd.com/news/1185176/

相关文章:

  • 2026十大光学复合膜综合口碑榜单,企业采购精选攻略不踩富 - 工业设备
  • YOLO26迁移学习实战:小数据集高效训练技巧
  • Godot资源导入配置实战:像素风与写实风纹理优化指南
  • 华为官方文档及OpenHarmony社区实践整理,涵盖ArkTS/TS代码风格、命名、注释、工程化检查等核心内容
  • 【AI智能问数】技术全景:从NL2SQL到五引擎混合的十年演进
  • FModel实战指南:UE5游戏资源解包与逆向工程全流程解析
  • C++访问控制:public、private、protected的封装艺术与工程实践
  • linux系统rocky的安装+显卡驱动的安装
  • 每秒百万条日志入库:十亿级用户行为实时数据分析平台架构落地
  • 源代码论文分享|车辆管理系统设计与实现!
  • Unity网络通信实战:SocketIOUnity集成、多线程处理与移动端优化指南
  • 从NOIP P1199三国游戏解析博弈论贪心策略与图论建模
  • 遗传算法工程化实战:收敛性、编码与适应度设计核心陷阱
  • Unity Addressable系统配置实战:从Profile到CCD的完整避坑指南
  • 线性回归实战:用价格弹性与销售建模驱动业务决策
  • 边缘计算中实现每秒超50万次量子安全密钥生成的核心架构与优化实践
  • SVN安装
  • 用Plotly做国际象棋数据交互式分析
  • Unity资源依赖分析与GUID工具开发实战
  • 【服装AI质检】离线抽检 vs 在线全检,如何选择?
  • 24位ΔΣ ADC与STM32的高精度数据采集系统设计
  • 三方IM聊天软件定制开发,助力企业打造专属通讯平台#灰鲸IM #极光鸟IM
  • 3D高斯泼溅网页查看器:照片级真实感渲染技术解析
  • Meta CTO 自爆Llama 4掉队真相:为了让Llama 3强行出头,我们亲手“废了”自己的后路
  • Playwright精准截图实战:从原理到企业级自动化方案
  • C++对象内存实时监控:构建非侵入式内存分析工具
  • TPS61170与PIC18F46K20构建数字可调高压电源方案
  • 游戏道具制作全流程:从Blender建模到Unity集成的实战指南
  • CBAM注意力模块实战:从论文解读到PyTorch代码复现与性能分析
  • HarmonyOS7 限制长度输入框:用 maxLength 把输入限制做得更顺手