auth-web/vite.config.ts

66 lines
2.1 KiB
TypeScript
Raw Normal View History

2024-10-26 02:31:35 +08:00
import { type ConfigEnv, loadEnv, type UserConfigExport } from 'vite';
2025-04-29 23:21:40 +08:00
import { exclude, include } from './build/optimize';
import { getPluginsList } from './build/plugins';
2025-04-29 18:18:07 +08:00
import { __APP_INFO__, alias, pathResolve, root, wrapperEnv } from './build/utils';
2024-09-26 09:38:02 +08:00
export default ({ mode }: ConfigEnv): UserConfigExport => {
2025-04-25 16:21:15 +08:00
const { VITE_CDN, VITE_PORT, VITE_COMPRESSION, VITE_PUBLIC_PATH } = wrapperEnv(loadEnv(mode, root));
return {
base: VITE_PUBLIC_PATH,
root,
2025-04-29 18:18:07 +08:00
resolve: {
alias,
},
2025-04-25 16:21:15 +08:00
// 服务端渲染
2025-04-29 18:18:07 +08:00
server: {
// 端口号
port: VITE_PORT,
host: '0.0.0.0',
// 本地跨域代理 https://cn.vitejs.dev/config/server-options.html#server-proxy
proxy: {
'/api/v1/': {
target: 'http://129.211.31.58:3000',
changeOrigin: true,
},
'/api': {
target: 'http://localhost:7070',
changeOrigin: true,
rewrite: (path: string) => path.replace(/^\/api/, '/api'),
},
},
// 预热文件以提前转换和缓存结果,降低启动期间的初始页面加载时长并防止转换瀑布
warmup: {
clientFiles: ['./index.html', './src/{views,components}/*'],
},
},
2025-04-29 23:21:40 +08:00
plugins: getPluginsList(VITE_CDN, VITE_COMPRESSION, VITE_PORT),
2025-04-25 16:21:15 +08:00
// https://cn.vitejs.dev/config/dep-optimization-options.html#dep-optimization-options
2025-04-29 18:18:07 +08:00
optimizeDeps: {
include,
exclude,
},
build: {
// https://cn.vitejs.dev/guide/build.html#browser-compatibility
target: 'es2015',
sourcemap: false,
// 消除打包大小超过500kb警告
chunkSizeWarningLimit: 4000,
rollupOptions: {
input: {
index: pathResolve('./index.html', import.meta.url),
},
// 静态资源分类打包
output: {
chunkFileNames: 'static/js/[name]-[hash].js',
entryFileNames: 'static/js/[name]-[hash].js',
assetFileNames: 'static/[ext]/[name]-[hash].[ext]',
},
},
2025-04-25 16:21:15 +08:00
},
define: {
__INTLIFY_PROD_DEVTOOLS__: false,
__APP_INFO__: JSON.stringify(__APP_INFO__),
},
};
2024-09-26 09:38:02 +08:00
};