Files
zhongyidian d445f81e60 chore: 更新素材资源和组件优化
- 更新陈云、鲁迅、聂耳等故居的展品图片素材
- 更新拼图细节图片
- 优化学习地图底图和详情图
- 更新音频素材
- 优化各故居 store 和页面组件
2026-08-12 11:35:09 +08:00

53 lines
1.6 KiB
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
import path from 'path'
// https://vite.dev/config/
export default defineConfig({
base: './',
plugins: [react()],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
},
},
server: {
host: '0.0.0.0',
port: 5174,
},
build: {
rollupOptions: {
output: {
entryFileNames: 'js/[name]-[hash].js',
chunkFileNames: 'js/[name]-[hash].js',
assetFileNames: (assetInfo) => {
const filename = assetInfo.names[0] ?? assetInfo.originalFileNames[0] ?? ''
const ext = path.extname(filename).slice(1).toLowerCase()
if (ext === 'css') return 'css/[name]-[hash][extname]'
if (['png', 'jpg', 'jpeg', 'gif', 'svg', 'webp', 'avif'].includes(ext)) {
return 'images/[name]-[hash][extname]'
}
return 'assets/[name]-[hash][extname]'
},
manualChunks: (id) => {
// 将 components/index.ts 和它导出的组件放在同一个 chunk,避免循环依赖
if (
id.includes('components/index') ||
id.includes('components/guide/StudyGuideModal') ||
id.includes('components/clue/ClueHintModal') ||
id.includes('components/clue/ClueBookModal')
) {
return 'components-shared'
}
// 将其他 guide 和 clue 组件也放在同一个 chunk
if (id.includes('components/guide') || id.includes('components/clue')) {
return 'components-shared'
}
},
},
},
},
})