- 代理层级默认授信比例与停用冻结/禁登全局默认 - 结算预览去重、比分校验、串关当场判负与市场类型校验 - 站内信 Banner/公告自动通知开关;开发环境动态 API 端口 - 扩充 RBAC/结算/认证/返现单元测试与 agent skills
49 lines
1.6 KiB
TypeScript
49 lines
1.6 KiB
TypeScript
import { defineConfig } from 'vite';
|
||
import vue from '@vitejs/plugin-vue';
|
||
import { resolve } from 'path';
|
||
import { resolveDevApiTarget } from '../../scripts/resolve-dev-api-target.mjs';
|
||
|
||
const devApiTarget = resolveDevApiTarget();
|
||
|
||
export default defineConfig({
|
||
plugins: [vue()],
|
||
build: {
|
||
rollupOptions: {
|
||
output: {
|
||
manualChunks(id) {
|
||
if (!id.includes('node_modules')) {
|
||
if (id.includes('/src/i18n/zh-CN')) return 'i18n-zh-CN';
|
||
if (id.includes('/src/i18n/en-US')) return 'i18n-en-US';
|
||
if (id.includes('/src/i18n/ms-MY')) return 'i18n-ms-MY';
|
||
return undefined;
|
||
}
|
||
if (id.includes('vue') || id.includes('pinia') || id.includes('vue-router')) {
|
||
return 'vue-vendor';
|
||
}
|
||
if (id.includes('vue-i18n')) return 'i18n-vendor';
|
||
if (id.includes('axios')) return 'axios';
|
||
return undefined;
|
||
},
|
||
},
|
||
},
|
||
chunkSizeWarningLimit: 600,
|
||
},
|
||
resolve: {
|
||
// 避免删除 src 内过期 .js 后仍优先请求 index.js 导致 404
|
||
extensions: ['.ts', '.tsx', '.mjs', '.js', '.mts', '.jsx', '.json', '.vue'],
|
||
alias: {
|
||
// shared 的 dist 为 CommonJS,Vite 无法按命名导出加载;直连源码
|
||
'@thebet365/shared': resolve(__dirname, '../../packages/shared/src/index.ts'),
|
||
},
|
||
},
|
||
publicDir: resolve(__dirname, '../../packages/shared/public'),
|
||
server: {
|
||
host: true,
|
||
port: 5173,
|
||
proxy: {
|
||
'/api': { target: devApiTarget, changeOrigin: true },
|
||
'/uploads': { target: devApiTarget, changeOrigin: true },
|
||
},
|
||
},
|
||
});
|