7.0.1 릴리즈 산출물 날짜를 2026-07-03 으로 조정하고, 엔진 CHANGELOG 의 engine-v1.52.0(DevTools 번들 분리) 과 engine-v1.51.0 (레이아웃 편집기 번들 분리) 을 단일 engine-v1.51.0 섹션으로 병합. 병합에 따라 DevTools 관련 코드 @since 를 v1.51.0 으로 정정하고, 그 과정에서 발견한 CHANGELOG 부재 유령 버전(v1.52.0/v1.52.2/ v1.52.4) 을 CHANGELOG 정본(engine-v1.50.0) 에 맞춰 정정. 주석/CHANGELOG 문자열 정정만으로 런타임 로직 변경 없음.
48 lines
1.9 KiB
TypeScript
48 lines
1.9 KiB
TypeScript
/**
|
|
* devtools-entry.ts — DevTools lazy 번들 진입점
|
|
*
|
|
* @since engine-v1.51.0
|
|
*
|
|
* 개발자 진단도구(DevTools)는 디버그 모드(`G7Config.debug` / 환경설정)를 켰을 때만 쓰인다.
|
|
* 그럼에도 메인 코어 번들(`template-engine.min.js`)에 정적 포함되면 모든 사용자가 받고도
|
|
* 실행하지 않는 죽은 코드가 된다(패널 UI 만 311KB). 이를 별도 `devtools.min.js` 로 분리해
|
|
* `initDevToolsAPI()` 가 `isEnabled()` 참일 때만 런타임 `<script>` 주입으로 로드한다.
|
|
*
|
|
* 노출: 디버그 전용 무거운 모듈 4종을 `window.G7Core.__devtools` 로 노출.
|
|
* - DiagnosticEngine (진단 엔진 클래스)
|
|
* - getServerConnector (서버 커넥터 팩토리)
|
|
* - getStyleTracker (스타일 추적기 팩토리)
|
|
* - DevToolsPanel (패널 UI React 컴포넌트)
|
|
*
|
|
* `G7DevToolsCore`(추적 코어, 디버그 무관 항상 필요)는 메인 번들에 남아 `window.G7Core.__runtime`
|
|
* 으로 공유되며, DevToolsPanel 등은 vite.config.devtools.js alias 로 그것을 빌려 쓴다.
|
|
* React 는 external 로 window.React 재사용.
|
|
*/
|
|
|
|
import { DiagnosticEngine } from './devtools/DiagnosticEngine';
|
|
import { getServerConnector } from './devtools/ServerConnector';
|
|
import { getStyleTracker } from './devtools/StyleTracker';
|
|
import { DevToolsPanel } from './devtools/ui/DevToolsPanel';
|
|
|
|
if (typeof window !== 'undefined') {
|
|
const G7Core = (window as any).G7Core || ((window as any).G7Core = {});
|
|
|
|
G7Core.__devtools = {
|
|
DiagnosticEngine,
|
|
getServerConnector,
|
|
getStyleTracker,
|
|
DevToolsPanel,
|
|
};
|
|
|
|
// 준비 완료 통지 — loadDevToolsBundle() 이 주입 전에 등록한 resolve 호출
|
|
if (typeof G7Core.__onDevToolsReady === 'function') {
|
|
try {
|
|
G7Core.__onDevToolsReady();
|
|
} catch {
|
|
/* 콜백 실패 격리 — onload fallback 이 별도 resolve */
|
|
}
|
|
}
|
|
}
|
|
|
|
export { DiagnosticEngine, getServerConnector, getStyleTracker, DevToolsPanel };
|