34 lines
1.1 KiB
TypeScript
34 lines
1.1 KiB
TypeScript
import { defineConfig } from 'vite'
|
||
import react from '@vitejs/plugin-react'
|
||
import tailwindcss from '@tailwindcss/vite'
|
||
|
||
// https://vite.dev/config/
|
||
export default defineConfig({
|
||
// base 必须为默认 '/':相对 base 在 /notes/:slug 深链下会把资源解析到
|
||
// /notes/assets/… 导致白屏(设计 §8.3-2,禁止修改)
|
||
base: '/',
|
||
plugins: [react(), tailwindcss()],
|
||
server: {
|
||
proxy: {
|
||
// 同源是 Cookie/CSRF 成立的前提(§10.5)
|
||
'/api': 'http://127.0.0.1:8080',
|
||
},
|
||
},
|
||
build: {
|
||
// 产物内容 hash 文件名(§8.3-5)
|
||
assetsDir: 'assets',
|
||
rolldownOptions: {
|
||
output: {
|
||
// CodeMirror 体积过大,手动拆分避免单 chunk 超 500kB:
|
||
// @codemirror/view 是最大的包,单独成组,其余 cm/lezer/uiw 归一组
|
||
codeSplitting: {
|
||
groups: [
|
||
{ name: 'codemirror-view', test: /node_modules[\\/](@codemirror[\\/]view|style-mod|w3c-keyname)/ },
|
||
{ name: 'codemirror', test: /node_modules[\\/](@codemirror|@lezer|@uiw)/ },
|
||
],
|
||
},
|
||
},
|
||
},
|
||
},
|
||
})
|