feat(web): 重构 9 页面界面并统一设计令牌与响应式布局

- index.css 以 Tailwind 4 @theme 落地设计令牌,全部页面按新设计稿重写
  样式:首页/笔记详情/标签页/登录/后台列表/编辑/回收站/设置/404
- Layout 重构导航与主题切换;新增 Toast 轻提示组件
- 移除 vite 手动 codeSplitting:分组 chunk 会被提升进入口静态依赖并对
  HTML 发出 modulepreload,lazy 路由的 CodeMirror 在所有页面被预加载
  (Lighthouse unused-javascript 549KiB 的根因)
- vite dev 代理补 changeOrigin:false,保留浏览器原始 Host,避免后端
  Origin 校验误判跨源 403
This commit is contained in:
2026-09-08 21:41:05 +08:00
parent 412821684b
commit 51f528f516
18 changed files with 3820 additions and 683 deletions
+9 -13
View File
@@ -11,23 +11,19 @@ export default defineConfig({
server: {
proxy: {
// 同源是 Cookie/CSRF 成立的前提(§10.5)
'/api': 'http://127.0.0.1:8080',
// changeOrigin:false —— 保留浏览器原始 Host(localhost:5173),
// 否则后端 Origin 校验会因 Host 被改写为 127.0.0.1:8080 而判定跨源 403。
'/api': {
target: 'http://127.0.0.1:8080',
changeOrigin: false,
},
},
},
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)/ },
],
},
},
},
// 不做手动 codeSplitting 分组:分组 chunk 会被提升进入口静态依赖,
// HTML 对其发出 modulepreload,导致 lazy() 路由的 CodeMirror 在
// 所有页面被预加载(Lighthouse unused-javascript 549KiB 的根因)。
},
})