Private
Public Access
1
0

新增:文件系统导航面包屑

功能:
- 新增 PathBreadcrumb 组件,支持路径快速跳转
- 新增 DropdownItem 通用下拉菜单组件

优化:
- 版本升级流程优化(Pinia 状态管理、进度节流、完整下载验证)
- 模块延迟初始化(数据库、文件系统按需启动)
- API 数据格式统一(蛇形转驼峰)
- CodeMirror 语言包按需动态加载
- Markdown 渲染增强(支持锚点跳转)

重构:
- 迁移到 Pinia 状态管理(stores/config.ts、stores/theme.ts、stores/update.ts)
- 简化 UpdatePanel、UpdateNotification、ThemeToggle 逻辑
- 优化表结构加载逻辑

清理:
- 删除测试组件 index-simple.vue
- 删除旧的 useTheme.ts
This commit is contained in:
2026-02-05 00:17:32 +08:00
parent ce2698f245
commit f7d648ea52
48 changed files with 3930 additions and 1380 deletions

View File

@@ -1,60 +1,74 @@
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { resolve } from 'path'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ArcoResolver } from 'unplugin-vue-components/resolvers'
export default defineConfig({
plugins: [vue()],
plugins: [
vue(),
AutoImport({
imports: ['vue', 'vue-router'],
dts: 'src/auto-imports.d.ts',
}),
Components({
resolvers: [ArcoResolver({ sideEffect: true })],
dts: 'src/components.d.ts',
})
],
resolve: {
alias: {
'@': resolve(__dirname, 'src')
}
alias: { '@': resolve(__dirname, 'src') }
},
build: {
outDir: 'dist',
emptyOutDir: true,
sourcemap: false, // 生产环境禁用 source map减小打包体积
sourcemap: false,
minify: 'esbuild',
cssCodeSplit: true,
chunkSizeWarningLimit: 1000,
esbuild: {
target: 'es2020',
drop: ['console', 'debugger']
},
rollupOptions: {
output: {
manualChunks: {
'codemirror': [
'@codemirror/view',
'@codemirror/state',
'@codemirror/language',
'@codemirror/commands',
'@codemirror/lang-javascript',
'@codemirror/lang-java',
'@codemirror/lang-python',
'@codemirror/lang-html',
'@codemirror/lang-css',
'@codemirror/lang-markdown',
'@codemirror/lang-sql'
]
}
manualChunks: (id) => {
if (!id.includes('node_modules')) return
if (id.includes('@codemirror')) {
if (id.includes('lang-') || id.includes('legacy-modes')) {
return 'vendor-codemirror-langs'
}
return 'vendor-codemirror-core'
}
if (id.includes('@arco-design')) return 'vendor-arco'
if (id.includes('mermaid')) return 'vendor-mermaid'
if (id.includes('marked') || id.includes('highlight.js')) return 'vendor-markdown'
if (id.includes('vue') || id.includes('pinia')) return 'vendor-vue'
return 'vendor'
},
chunkFileNames: 'assets/js/[name]-[hash].js',
entryFileNames: 'assets/js/[name]-[hash].js',
assetFileNames: 'assets/[ext]/[name]-[hash].[ext]'
}
}
},
optimizeDeps: {
include: [
'@codemirror/view',
'@codemirror/state',
'@codemirror/language',
'@codemirror/commands',
'@codemirror/lang-javascript',
'@codemirror/lang-java',
'@codemirror/lang-python',
'@codemirror/lang-html',
'@codemirror/lang-css',
'@codemirror/lang-markdown',
'@codemirror/lang-sql',
'@codemirror/legacy-modes/mode/go',
'@codemirror/legacy-modes/mode/clike',
'@codemirror/legacy-modes/mode/ruby',
'@codemirror/legacy-modes/mode/rust',
'@codemirror/legacy-modes/mode/shell',
'@codemirror/legacy-modes/mode/yaml',
'@codemirror/legacy-modes/mode/xml'
'vue', 'pinia', '@arco-design/web-vue', 'marked', 'highlight.js',
'@codemirror/view', '@codemirror/state', '@codemirror/language', '@codemirror/commands',
'@codemirror/lang-javascript', '@codemirror/lang-json', '@codemirror/lang-yaml',
'@codemirror/lang-html', '@codemirror/lang-css', '@codemirror/lang-markdown',
'@codemirror/lang-sql', '@codemirror/lang-java', '@codemirror/lang-python',
'@codemirror/lang-php', '@codemirror/lang-rust', '@codemirror/lang-go', '@codemirror/lang-cpp',
'@codemirror/legacy-modes/mode/clike', '@codemirror/legacy-modes/mode/ruby',
'@codemirror/legacy-modes/mode/shell', '@codemirror/legacy-modes/mode/xml'
]
}
},
cacheDir: 'node_modules/.vite'
})