From 92b12d536304876327628279e33fb93ae516963e Mon Sep 17 00:00:00 2001 From: jingrow Date: Sat, 14 Mar 2026 17:36:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=89=A9=E5=B1=95=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frontend/src/shared/extensions/index.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/apps/jingrow/frontend/src/shared/extensions/index.ts b/apps/jingrow/frontend/src/shared/extensions/index.ts index c13ff5f..8837da8 100644 --- a/apps/jingrow/frontend/src/shared/extensions/index.ts +++ b/apps/jingrow/frontend/src/shared/extensions/index.ts @@ -41,7 +41,30 @@ function loadScript(url: string): Promise { }) } +const extensionGlob = import.meta.glob('@apps/*/frontend/src/shared/extensions/*.ts') +const localExtensionGlob = import.meta.glob('/src/shared/extensions/*.ts') + +let extensionsLoaded = false + +async function loadExtensionModules(): Promise { + if (extensionsLoaded) return + extensionsLoaded = true + + const allExtensions = { ...extensionGlob, ...localExtensionGlob } + for (const [path, loader] of Object.entries(allExtensions)) { + try { + await loader() + } catch (err) { + console.error(`[Extensions] Failed to load extension from ${path}:`, err) + } + } +} + export async function loadAppExtensions(): Promise { + // Load TS extension modules from all apps + await loadExtensionModules() + + // Load legacy JS extensions via script tags const urls: string[] = win.jingrow?.boot?.vue_app_extensions || [] if (!urls.length) return