29 lines
1.1 KiB
Markdown
29 lines
1.1 KiB
Markdown
# 2026-06-01 文件编辑器 Monaco 适配修复
|
|
|
|
## 日期
|
|
2026-06-01
|
|
|
|
## 变更摘要
|
|
修复文件管理页 Monaco 全屏编辑器空白/高亮失效、切换文件内容不刷新、保存失败等问题。
|
|
|
|
## 动机
|
|
- Vite 打包未配置 `MonacoEnvironment` Worker → 语法高亮与语言服务异常
|
|
- 仅监听 `visible`,打开另一文件时仍显示旧内容
|
|
- 后端 `write-file` 使用 `echo|base64` 受命令行长度限制,大文件或保存易失败
|
|
|
|
## 涉及文件
|
|
- `frontend/src/monaco/setupMonacoEnv.ts` — Vite Worker 配置(新建)
|
|
- `frontend/src/components/MonacoEditor.vue` — 布局、换行归一化、Esc/Ctrl+S、ResizeObserver
|
|
- `frontend/src/pages/FilesPage.vue` — `editorSessionKey` 强制按路径重建编辑器
|
|
- `server/api/sync_v2.py` — `write-file` 改为 SFTP 写入
|
|
|
|
## 迁移 / 重启
|
|
- 前端构建部署 `web/app/`
|
|
- 后端需 `supervisorctl restart nexus`
|
|
|
|
## 验证方式
|
|
1. 双击 `.php` / `.js` 文件,编辑器有语法高亮、可编辑
|
|
2. 修改后 Ctrl+S 保存,刷新目录内容已更新
|
|
3. 连续打开两个不同文件,内容互不串台
|
|
4. 关闭时未保存会提示确认
|