From 32251b2a1dcc21fe45871718630ec0aca64b7b4f Mon Sep 17 00:00:00 2001 From: HeuJung Date: Wed, 1 Jul 2026 17:05:15 +0900 Subject: [PATCH] =?UTF-8?q?perf(core):=20=EC=BD=94=EC=96=B4=20=EB=B2=88?= =?UTF-8?q?=EB=93=A4=203=EB=B6=84=ED=95=A0=EB=A1=9C=20=EC=B4=88=EA=B8=B0?= =?UTF-8?q?=20=EB=A1=9C=EB=94=A9=20=EC=B5=9C=EC=A0=81=ED=99=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 레이아웃 편집기·개발자 진단도구를 코어 번들에서 분리해 각각 편집 화면 진입 시·디버그 모드 시에만 지연 로드하도록 변경. 초기 접속 gzip payload 458KB → 221KB (52% 감소). lazy 번들은 window.G7Core.__runtime 으로 코어 런타임을 공유해 React/컨텍스트/싱글톤 단일 인스턴스를 보장(재번들 0중복). 코어 7.0.1 bump. --- .env.example | 2 +- .env.testing.example | 2 +- AGENTS.md | 12 + CHANGELOG.md | 6 + INSTALL.md | 2 +- README.md | 2 +- .../Commands/Core/BuildCoreCommand.php | 112 +- config/app.php | 2 +- package.json | 5 + public/build/core/devtools.min.js | 1561 +++++++++++++++ public/build/core/devtools.min.js.map | 1 + public/build/core/layout-editor.min.js | 14 + public/build/core/layout-editor.min.js.map | 1 + public/build/core/template-engine.min.js | 1716 +---------------- public/build/core/template-engine.min.js.map | 2 +- .../js/core/__tests__/G7CoreGlobals.test.ts | 69 + .../core/__tests__/loadDevToolsBundle.test.ts | 100 + .../__tests__/loadLayoutEditorBundle.test.ts | 106 + resources/js/core/devtools-entry.ts | 47 + .../__runtime-shims/G7DevToolsCore.ts | 22 + resources/js/core/layout-editor-entry.ts | 45 + resources/js/core/template-engine.ts | 108 +- .../js/core/template-engine/CHANGELOG.md | 24 + .../js/core/template-engine/G7CoreGlobals.ts | 198 +- .../__runtime-shims/ActionDispatcher.ts | 21 + .../__runtime-shims/AuthManager.ts | 10 + .../__runtime-shims/ComponentRegistry.ts | 17 + .../__runtime-shims/DataBindingEngine.ts | 14 + .../__runtime-shims/DataSourceManager.ts | 25 + .../__runtime-shims/DynamicRenderer.ts | 22 + .../layout-editor/__runtime-shims/Logger.ts | 12 + .../__runtime-shims/ResponsiveContext.ts | 15 + .../__runtime-shims/ResponsiveManager.ts | 12 + .../__runtime-shims/TranslationContext.ts | 13 + .../__runtime-shims/TranslationEngine.ts | 16 + .../layout-editor/__runtime-shims/runtime.ts | 54 + resources/views/admin.blade.php | 6 + resources/views/app.blade.php | 6 + .../specs/layout-editor/bundle-split.spec.ts | 70 + .../devtools-bundle-split.spec.ts | 64 + vite.config.devtools.js | 88 + vite.config.editor.js | 120 ++ 42 files changed, 3091 insertions(+), 1653 deletions(-) create mode 100644 public/build/core/devtools.min.js create mode 100644 public/build/core/devtools.min.js.map create mode 100644 public/build/core/layout-editor.min.js create mode 100644 public/build/core/layout-editor.min.js.map create mode 100644 resources/js/core/__tests__/loadDevToolsBundle.test.ts create mode 100644 resources/js/core/__tests__/loadLayoutEditorBundle.test.ts create mode 100644 resources/js/core/devtools-entry.ts create mode 100644 resources/js/core/devtools/__runtime-shims/G7DevToolsCore.ts create mode 100644 resources/js/core/layout-editor-entry.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/ActionDispatcher.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/AuthManager.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/ComponentRegistry.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/DataBindingEngine.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/DataSourceManager.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/DynamicRenderer.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/Logger.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/ResponsiveContext.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/ResponsiveManager.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/TranslationContext.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/TranslationEngine.ts create mode 100644 resources/js/core/template-engine/layout-editor/__runtime-shims/runtime.ts create mode 100644 tests/Playwright/specs/layout-editor/bundle-split.spec.ts create mode 100644 tests/Playwright/specs/layout-editor/devtools-bundle-split.spec.ts create mode 100644 vite.config.devtools.js create mode 100644 vite.config.editor.js diff --git a/.env.example b/.env.example index d8d2ec94..ad1164be 100644 --- a/.env.example +++ b/.env.example @@ -3,7 +3,7 @@ APP_ENV=production APP_KEY= APP_DEBUG=false APP_URL=http://localhost -APP_VERSION=7.0.0 +APP_VERSION=7.0.1 APP_LOCALE=ko APP_FALLBACK_LOCALE=ko diff --git a/.env.testing.example b/.env.testing.example index de9d9f18..889ac45f 100644 --- a/.env.testing.example +++ b/.env.testing.example @@ -3,7 +3,7 @@ APP_ENV=testing APP_KEY= APP_DEBUG=false APP_URL=http://localhost -APP_VERSION=7.0.0 +APP_VERSION=7.0.1 APP_LOCALE=ko APP_FALLBACK_LOCALE=ko diff --git a/AGENTS.md b/AGENTS.md index 239da295..98717a21 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -776,6 +776,18 @@ php artisan module:update sirsoft-ecommerce --force php artisan plugin:update sirsoft-payment --force ``` +### 코어 3-번들 구조 + 공유 런타임 (engine-v1.51.0+) + +`core:build` 는 코어 프론트엔드를 3개 IIFE 번들로 빌드한다: + +| 번들 | 로드 시점 | vite config | +|------|----------|-------------| +| `template-engine.min.js` | 모든 페이지 (동기 `