重构:CodeMirror 架构优化
核心优化: - 新增统一导出避免多实例问题 - 语言加载器从动态改为静态导入 - 使用 Compartment 实现主题/语言动态切换 依赖清理: - 移除废弃的 @codemirror/highlight - 移除不再使用的 @codemirror/legacy-modes 组件优化: - CodeEditor 添加内容更新防抖 - 改进亮色主题样式 - 移除不必要的编辑器重建逻辑 构建配置: - 简化 Vite manualChunks 配置 - 优化依赖预加载列表 文档清理: - 删除过期的代码审查文档 - 更新版本号 0.3.0 → 0.3.2
This commit is contained in:
@@ -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']
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user