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)/ }, ], }, }, }, }, })