Private
Public Access
1
0

重构:CodeMirror 架构优化

核心优化:
- 新增统一导出避免多实例问题
- 语言加载器从动态改为静态导入
- 使用 Compartment 实现主题/语言动态切换

依赖清理:
- 移除废弃的 @codemirror/highlight
- 移除不再使用的 @codemirror/legacy-modes

组件优化:
- CodeEditor 添加内容更新防抖
- 改进亮色主题样式
- 移除不必要的编辑器重建逻辑

构建配置:
- 简化 Vite manualChunks 配置
- 优化依赖预加载列表

文档清理:
- 删除过期的代码审查文档
- 更新版本号 0.3.0 → 0.3.2
This commit is contained in:
2026-02-06 11:32:27 +08:00
parent 9eb39fbb8f
commit 0229cab550
30 changed files with 592 additions and 3971 deletions

View File

@@ -18,7 +18,9 @@ export default defineConfig({
})
],
resolve: {
alias: { '@': resolve(__dirname, 'src') }
alias: {
'@': resolve(__dirname, 'src')
}
},
build: {
outDir: 'dist',
@@ -27,29 +29,9 @@ export default defineConfig({
minify: 'esbuild',
cssCodeSplit: true,
chunkSizeWarningLimit: 1000,
esbuild: {
target: 'es2020',
drop: ['console', 'debugger']
},
target: 'es2020',
rollupOptions: {
output: {
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]'
@@ -57,18 +39,6 @@ export default defineConfig({
}
},
optimizeDeps: {
include: [
'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'
include: ['vue', 'pinia', '@arco-design/web-vue', 'marked', 'highlight.js']
}
})