4b5602a719
- FilesPage storeToRefs + remotePath coercion; Monaco preload; list action buttons - text_io for UTF-8/LF; install/sync EOL; check_shell_eol + check_text_eol gates - ServerFormDialog, hash login redirect, AppAuth keep-session; design docs and audits Co-authored-by: Cursor <cursoragent@cursor.com>
1.3 KiB
1.3 KiB
2026-06-02 Monaco 编辑器核心预加载
变更摘要
选中服务器并成功列出目录后,在浏览器空闲时段后台预热 Monaco 核心(editor.api2)与通用 editor.worker,缩短文件编辑器首开时间。
动机
双击打开文件时首次需下载约 3.6MB 的 Monaco 核心,用户感知为卡顿。目录浏览成功后用户往往即将编辑文件,此时 idle 预加载可掩盖下载延迟。
涉及文件
frontend/src/monaco/preloadMonaco.ts(新增)frontend/src/monaco/setupMonacoEnv.ts(warmGenericEditorWorker)frontend/src/composables/files/useFilesBrowse.ts(调用preloadMonacoCore)docs/design/specs/2026-06-02-monaco-core-preload-design.md
是否需迁移/重启
- 仅前端构建产物;需
vite build+ 上传web/app,可选supervisorctl restart nexus。
验证方式
- 打开
/app/#/files,选择服务器等待目录列出。 - DevTools Network:空闲后出现
FileEditorWorkbench-*.js、editor.api2-*.js、editor.worker-*.js(非双击瞬间)。 - 双击文件:编辑器快速出现;打开
.ts时仍单独加载ts.worker。
回滚方式
删除 useFilesBrowse.ts 中的 preloadMonacoCore() 调用及 preloadMonaco.ts 即可。