ui: monaco: upgrade to 0.57, drop monaco-editor-webpack-plugin

- Migrate entry points to the 0.57 exports scheme (monaco-editor/editor,
  languages/features/typescript/register)
- Wire workers via the official MonacoEnvironment.getWorker +
  new Worker(new URL(...)) integration; webpack emits them as shared-chunk
  classic workers (chrome 70 compatible), total assets -21%
- Keep css/html/json language features (register.all) and route their
  worker labels; json is used by the cmeditor textareas
- Replace removed esm/vs/nls.messages with an inline implementation in the
  nls shim
- Drop MinChunkSizePlugin: it merged worker chunks into the main chunk and
  broke the runtime id module (webpack#15416)
- Remove monaco-editor-webpack-plugin dependency
- loadMonaco() now returns the loaded feature module exports, e.g.
  loadMonaco(['typescript']).typescript.javascriptDefaults
This commit is contained in:
undefined committed 2026-10-09 16:26:44 +00:00
1 parent 80638bf9ab
commit 489b2dbeec
11 files changed
+103 -42

No files matched your search

+16
View File
@@ -18,3 +18,19 @@ declare module '*.scss' {
const content: string;
export default content;
}
// monaco internal modules blocked by package exports; types declared here, runtime is aliased in webpack config
declare module 'monaco-editor/esm/vs/editor/browser/editorExtensions' {
export class EditorAction {
constructor(opts: { id: string; label: string; alias: string });
run(accessor: any, editor: any): Promise<any>;
}
export function registerEditorAction(ctor: any): void;
}
declare module 'monaco-editor/esm/vs/platform/quickinput/common/quickInput' {
// monaco DI token(createDecorator 返回值),运行时按值使用
export const IQuickInputService: any;
}
declare module 'monaco-editor/esm/vs/base/browser/markdownRenderer' {
export function renderMarkdown(opts: any): any;
}