feat(V2-1c): packages/ui 추출 — DS 컴포넌트 + theme + theme-vars 분리
packages/ui (@d3ro/ui) 신규: - src/theme.ts (d3roPalette/d3roTypo/d3roShadow/d3roRadius SSOT) - src/theme-vars.ts (팝업/main 프로세스용 CSS 변수 맵) - src/components/ds/ (CrtDisplay, InstrumentPanel, Led, MetalCard, MetalDial, PhosphorText, PhysicalButton, ScreenPanel, ButtonGroup) - src/index.ts barrel - subpath exports: ./theme, ./theme-vars, ./components/ds - React/MUI/Emotion은 peerDependencies로 선언 - @d3ro/core만 직접 의존성 apps/desktop/src/shared/ 디렉토리 완전 제거: - theme-vars가 마지막 남은 파일이었음 - tsconfig include에서 src/shared/**/* 제거 일괄 치환 (renderer 전역): - ../theme, ../../theme, ./theme → @d3ro/ui/theme - ../components/ds, ../../components/ds, ./ds, ../ds → @d3ro/ui/components/ds - ../ds/<Component>, ../../ds/<Component> → @d3ro/ui/components/ds (세부 파일 import는 barrel로 통합) - @shared/theme-vars → @d3ro/ui/theme-vars (WindowManager) apps/desktop 설정: - package.json: @d3ro/ui: '*' dep 추가 - tsconfig.node/web.json: @shared/* paths 완전 제거, @d3ro/ui, @d3ro/ui/* paths 추가 - electron.vite.config.ts: @shared alias 제거, @d3ro/ui alias 추가, externalize exclude에 @d3ro/ui 추가 - vitest.config.ts: alias 교체 DS 컴포넌트 내부의 '../../theme' 상대 경로는 packages/ui 구조에서 동일하게 해결되어 그대로 유효. 검증: typecheck + build + dev 런타임 모두 통과.
This commit is contained in:
parent
3b0eb3393b
commit
a041f1b6a9
56 changed files with 191 additions and 76 deletions
|
|
@ -8,7 +8,8 @@
|
|||
**V1 (Electron) 완료** → **V2 (Monorepo) 진행 중**
|
||||
- Phase V2-1a ✅ 완료 (Monorepo 구조 이동)
|
||||
- Phase V2-1b ✅ 완료 (packages/core 추출)
|
||||
- 다음: Phase V2-1c (packages/ui 추출) — 별도 세션
|
||||
- Phase V2-1c ✅ 완료 (packages/ui 추출)
|
||||
- 다음: Phase V2-1d (packages/i18n 추출)
|
||||
|
||||
## V1 완료 페이즈
|
||||
|
||||
|
|
@ -38,9 +39,34 @@
|
|||
|---|---|---|
|
||||
| V2-1a | npm workspaces + apps/desktop으로 V1 이동 | ✅ 완료 |
|
||||
| V2-1b | packages/core 추출 (types, errors, ipc-channels, constants, utils) | ✅ 완료 |
|
||||
| V2-1c | packages/ui 추출 (DS 컴포넌트 + theme + theme-vars) | ⏸️ 대기 |
|
||||
| V2-1c | packages/ui 추출 (DS 컴포넌트 + theme + theme-vars) | ✅ 완료 |
|
||||
| V2-1d | packages/i18n 추출 (locale JSON + 훅) | ⏸️ 대기 |
|
||||
|
||||
**V2-1c 완료 내역**
|
||||
- `packages/ui/` (@d3ro/ui) 신규 생성:
|
||||
- `src/theme.ts` (d3roPalette/d3roTypo/d3roShadow SSOT 전체)
|
||||
- `src/theme-vars.ts` (팝업/main 프로세스용 CSS 변수 맵)
|
||||
- `src/components/ds/{CrtDisplay, InstrumentPanel, Led, MetalCard, MetalDial, PhosphorText, PhysicalButton, ScreenPanel, ButtonGroup, index}.tsx`
|
||||
- `src/index.ts` barrel
|
||||
- `packages/ui/package.json`: React/MUI/Emotion은 **peerDependencies**, `@d3ro/core`만 직접 dep
|
||||
- `apps/desktop/src/shared/` 디렉토리 완전 제거 (theme-vars가 마지막이었음)
|
||||
- subpath exports: `./theme`, `./theme-vars`, `./components/ds`
|
||||
- DS 컴포넌트 내부 `../../theme` 상대 경로는 그대로 유효 (packages/ui 내부에서 해결)
|
||||
- **일괄 치환**:
|
||||
- `../theme`, `../../theme`, `./theme` → `@d3ro/ui/theme`
|
||||
- `../components/ds`, `../../components/ds`, `./ds`, `../ds` → `@d3ro/ui/components/ds`
|
||||
- `../ds/<Component>`, `../../ds/<Component>` → `@d3ro/ui/components/ds` (세부 파일 import는 barrel로 통합)
|
||||
- `@shared/theme-vars` → `@d3ro/ui/theme-vars` (WindowManager 1건)
|
||||
- `apps/desktop/tsconfig.node/web.json`: `@shared/*` paths 완전 제거, `@d3ro/ui`, `@d3ro/ui/*` paths 추가, `include`에서 `src/shared/**/*` 제거
|
||||
- `electron.vite.config.ts`: `@shared` alias 제거, `@d3ro/ui` alias 추가, externalize exclude에 `@d3ro/ui` 추가
|
||||
- `vitest.config.ts`: alias 교체
|
||||
|
||||
**V2-1c 검증**
|
||||
- `typecheck` ✅
|
||||
- `build` ✅
|
||||
- `dev` 런타임 ✅ (DB/핫키/Ollama/Main window 정상)
|
||||
- `apps/desktop/src/shared/` 디렉토리 자체가 사라져 `@shared/*`는 이제 프로젝트에 존재하지 않음
|
||||
|
||||
**V2-1b 완료 내역**
|
||||
- `packages/core/` 패키지 신규: `@d3ro/core`, subpath exports (types/errors/ipc-channels/constants/utils/*), docx dep 포함
|
||||
- 6개 파일 `git mv`로 `packages/core/src/`로 이동:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue