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

文章目录

一、安装依赖

bash 复制代码
# 核心
npm install vite vue @vitejs/plugin-vue -D
# TS 类型支持
npm install typescript vue-tsc @vue/tsconfig -D
# 路径别名需要
npm install @types/node -D

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

typescript 复制代码
import { defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'

// https://vitejs.dev/config/
export default defineConfig(({ command, mode }) => {
  // 读取环境变量,Vite6 推荐写法
  const env = loadEnv(mode, process.cwd(), '')
  const isBuild = 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) => {
            const ext = 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)

json 复制代码
{
  "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

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

五、环境变量文件示例

.env(公共基础变量)

env 复制代码
VITE_APP_TITLE=Vite6项目

.env.development(开发环境)

env 复制代码
VITE_API_BASE_URL=http://localhost:8080/api

.env.production(生产环境)

env 复制代码
VITE_API_BASE_URL=https://api.xxx.com

六、package.json scripts

json 复制代码
"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内添加:
ts 复制代码
build: {
  rollup: 'rolldown'
}
  1. 别名 @ 同时配置 Vite + TS 两处,TS 不会报路径找不到。
相关推荐
sir.山2 天前
在 Vue 3 项目中使用 Mock 数据
前端·vue.js·vue3·vite
嘟嘟07173 天前
JWT 登录认证完整流程(React + Vite 实战复习)
react.js·vite
xyphf_和派孔明4 天前
Vite 与 Webpack 对比及常见面试题
前端·webpack·vite
禁止摆烂_才浅5 天前
Vite 面试题
前端·面试·vite
cyadyx9 天前
Vite 比 Webpack 构建效率更高
前端·webpack·node.js·vite
java1234_小锋9 天前
Vue3专题 - 组件基础
vue.js·vite
小锋java12349 天前
【技术专题】Vue3 - 生命周期
vue.js·vite
倾听醉梦语12 天前
React/Vite/Next.js 前端开发工具 SpotPatch:点击页面元素精准定位 JSX/TSX 源码
javascript·react·ai编程·vite·next.js·前端开发工具
小锋java123416 天前
【技术专题】Vue3 - 列表渲染
vue.js·vite
小锋java123417 天前
【技术专题】Vue3 - 条件渲染
vue.js·vite