Files
Nexus/docs/changelog/2026-06-02-monaco-core-preload.md
T
Your Name 4b5602a719 feat(files): fix editor freeze, EOL gates, server form and session UX
- 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>
2026-06-03 00:42:55 +08:00

1.3 KiB
Raw Blame History

2026-06-02 Monaco 编辑器核心预加载

变更摘要

选中服务器并成功列出目录后,在浏览器空闲时段后台预热 Monaco 核心(editor.api2)与通用 editor.worker,缩短文件编辑器首开时间。

动机

双击打开文件时首次需下载约 3.6MB 的 Monaco 核心,用户感知为卡顿。目录浏览成功后用户往往即将编辑文件,此时 idle 预加载可掩盖下载延迟。

涉及文件

  • frontend/src/monaco/preloadMonaco.ts(新增)
  • frontend/src/monaco/setupMonacoEnv.tswarmGenericEditorWorker
  • 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

验证方式

  1. 打开 /app/#/files,选择服务器等待目录列出。
  2. DevTools Network:空闲后出现 FileEditorWorkbench-*.jseditor.api2-*.jseditor.worker-*.js(非双击瞬间)。
  3. 双击文件:编辑器快速出现;打开 .ts 时仍单独加载 ts.worker

回滚方式

删除 useFilesBrowse.ts 中的 preloadMonacoCore() 调用及 preloadMonaco.ts 即可。