diff --git a/dashboard/src/main.ts b/dashboard/src/main.ts index 4bfec5e77a..e1c736aa28 100644 --- a/dashboard/src/main.ts +++ b/dashboard/src/main.ts @@ -10,9 +10,33 @@ import VueApexCharts from 'vue3-apexcharts'; import print from 'vue3-print-nb'; import { loader } from '@guolao/vue-monaco-editor' +import * as monaco from 'monaco-editor'; +import editorWorker from 'monaco-editor/esm/vs/editor/editor.worker?worker'; +import jsonWorker from 'monaco-editor/esm/vs/language/json/json.worker?worker'; +import cssWorker from 'monaco-editor/esm/vs/language/css/css.worker?worker'; +import htmlWorker from 'monaco-editor/esm/vs/language/html/html.worker?worker'; +import tsWorker from 'monaco-editor/esm/vs/language/typescript/ts.worker?worker'; import axios from 'axios'; import { waitForRouterReadyInBackground } from './utils/routerReadiness.mjs'; +(self as any).MonacoEnvironment = { + getWorker(_: string, label: string) { + if (label === 'json') { + return new jsonWorker(); + } + if (label === 'css' || label === 'scss' || label === 'less') { + return new cssWorker(); + } + if (label === 'html' || label === 'handlebars' || label === 'razor') { + return new htmlWorker(); + } + if (label === 'typescript' || label === 'javascript') { + return new tsWorker(); + } + return new editorWorker(); + }, +}; + // 初始化新的i18n系统,等待完成后再挂载应用 setupI18n().then(async () => { console.log('🌍 新i18n系统初始化完成'); @@ -112,8 +136,4 @@ window.fetch = (input: RequestInfo | URL, init?: RequestInit) => { return _origFetch(input, { ...init, headers }); }; -loader.config({ - paths: { - vs: 'https://cdn.jsdelivr.net/npm/monaco-editor@0.54.0/min/vs', - }, -}) +loader.config({ monaco })