49 lines
1.7 KiB
TypeScript
49 lines
1.7 KiB
TypeScript
import path from 'node:path'
|
||
import { defineConfig } from 'vite'
|
||
import tailwindcss from '@tailwindcss/vite'
|
||
import vue from '@vitejs/plugin-vue'
|
||
|
||
|
||
export default defineConfig({
|
||
plugins: [vue(),tailwindcss()],
|
||
// 路径别名(和 tsconfig 保持一致)
|
||
resolve: {
|
||
alias: {
|
||
'@': path.resolve(__dirname, 'src')
|
||
}
|
||
},
|
||
// 核心:build 输出配置
|
||
build: {
|
||
// 1. 打包输出根目录(默认 dist),可自定义
|
||
outDir: 'dist',
|
||
// 2. 静态资源(js/css/img)输出子目录(默认 assets)
|
||
assetsDir: 'static',
|
||
// 3. 生成的静态资源文件名是否包含哈希(用于缓存控制)
|
||
assetsInlineLimit: 4096, // 小于4kb的资源内联,不生成文件
|
||
rollupOptions: {
|
||
// 4. 自定义入口/出口(进阶,一般无需修改)
|
||
output: {
|
||
// 自定义 chunk 文件名(拆分公共代码)
|
||
chunkFileNames: 'static/js/[name]-[hash].js',
|
||
// 自定义入口文件名
|
||
entryFileNames: 'static/js/[name]-[hash].js',
|
||
// 自定义 css 文件名
|
||
assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
|
||
// 拆分第三方依赖(如 vue、axios 单独打包)
|
||
manualChunks(id) {
|
||
if (id.includes('node_modules')) {
|
||
return id.toString().split('node_modules/')[1].split('/')[0].toString();
|
||
}
|
||
}
|
||
}
|
||
},
|
||
chunkSizeWarningLimit: 800,
|
||
// 5. 生产环境是否生成 sourcemap(默认 false,关闭可减小包体积)
|
||
sourcemap: false,
|
||
// 6. 清空输出目录(默认 true)
|
||
emptyOutDir: true
|
||
},
|
||
// 7. 部署的公共路径(关键!如部署到子路径 https://xxx.com/my-app/,需设为 '/my-app/')
|
||
base: './' // 相对路径(推荐),或绝对路径 '/'
|
||
})
|