diff --git a/packages/ui-default/components/monaco/loader.ts b/packages/ui-default/components/monaco/loader.ts index 754c690ea..ce4ed00e2 100644 --- a/packages/ui-default/components/monaco/loader.ts +++ b/packages/ui-default/components/monaco/loader.ts @@ -19,9 +19,12 @@ const loaders = { typescript: () => import('./languages/typescript'), yaml: () => import('./languages/yaml'), external: async (monaco, feat) => { - let apply = await loadExternalModule(window.externalModules[`monaco-${feat}`]); - if (typeof apply !== 'function') apply = apply.default || apply.apply; - if (typeof apply === 'function') await apply(monaco); + const items = Object.keys(window.externalModules).filter((i) => i === `monaco-${feat}` || i.startsWith(`monaco-${feat}@`)); + for (const item of items) { + let apply = await loadExternalModule(window.externalModules[`monaco-${item}`]); + if (typeof apply !== 'function') apply = apply.default || apply.apply; + if (typeof apply === 'function') await apply(monaco); + } }, }; @@ -38,9 +41,12 @@ export async function load(features = ['markdown']) { } for (const feat of features) { if (loaded.includes(feat)) continue; - if (!loaders[feat] && !window.externalModules[`monaco-${feat}`]) { - console.warn('Unknown monaco feature:', feat); - continue; + if (!loaders[feat]) { + const items = Object.keys(window.externalModules).filter((i) => i === `monaco-${feat}` || i.startsWith(`monaco-${feat}@`)); + if (!items.length) { + console.warn('Unknown monaco feature:', feat); + continue; + } } s = Date.now(); console.log('Loading monaco feature:', feat); diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index a7a3d902c..2a0de560b 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.38.30", + "version": "4.38.31", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js",