Skip to content

chore: upgrade monaco-editor@0.54.0#223

Open
liuxy0551 wants to merge 2 commits into
DTStack:nextfrom
liuxy0551:upgrade_monaco_editor_version
Open

chore: upgrade monaco-editor@0.54.0#223
liuxy0551 wants to merge 2 commits into
DTStack:nextfrom
liuxy0551:upgrade_monaco_editor_version

Conversation

@liuxy0551
Copy link
Copy Markdown
Collaborator

@liuxy0551 liuxy0551 commented May 20, 2026

简介

依赖的 monaco-editor 版本从 0.52.2 升级到 0.54.0

按 commit 查看,chore commit 中的改动原因:


  1. src/fillers/monaco-editor-core-amd.ts

目的:解决 Monaco 0.54.0 模块加载顺序变化导致 self.monaco 未定义的问题。

0.52.2 时,这个文件直接返回 self.monaco,因为 Monaco 在所有语言插件加载前就已经挂载到全局。0.54.0 改变了内部模块拆分方式,语言插件可能在 Monaco 挂载到全局之前就加载了。改用 Proxy
后,属性访问会被延迟到实际使用时才解析,避开加载顺序问题。


  1. test/setup.js

目的:适配 Monaco 0.54.0 的导出格式变化。

0.52.2 中 editor.main 直接导出 Monaco API 对象,0.54.0 改为通过 exports.m 导出。api.m || api 这个兼容写法确保两种格式都能正确获取到 Monaco 实例并挂载到 global.monaco。


  1. test/all.js

目的:为 Monaco 0.54.0 新增的浏览器 API 依赖提供 Node.js 环境下的 polyfill。

Monaco 0.54.0 内部开始使用更多浏览器原生 API,而测试运行在 Node.js 中没有这些 API,需要手动模拟:

API 原因
crypto.randomUUID / getRandomValues Monaco 用它生成唯一 ID
document.baseURI Monaco 用它拼接 worker URL
URL 构造函数 Monaco 用它解析资源路径
CSS.supports / CSS.escape 主题服务中用来处理 CSS 类名
window.addEventListener ContextKeyService 监听 DOM 事件

这些在 0.52.2 中都不需要,是 0.54.0 新引入的依赖。

@liuxy0551 liuxy0551 requested a review from Cythia828 May 20, 2026 11:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant