콘텐츠로 이동

로컬 연결

네이티브 플랫폼 개발 중, 토큰을 한 번 바꿀 때마다 core의 릴리스를 기다리고 의존성을 올려야 하므로 피드백 사슬이 너무 깁니다.

가족 레이아웃에서(각 리포지터리가 같은 부모 디렉터리에 있음), 네이티브 리포지터리는 로컬 개발 중 존재 여부 가드가 있는 로컬 해석으로 이 리포지터리의 dist/ 산출물을 직접 읽습니다: 토큰을 바꾼 뒤 이 리포지터리에서 pnpm codegen을 다시 실행하면 즉시 반영되며 패키지를 게시할 필요가 없습니다. 이 리포지터리가 없을 때(CI의 단일 리포지터리 clone 등)는 각 플랫폼의 이미 게시된 패키지로 자동 폴백합니다.

가드 메커니즘은 Web 혈통의 createLocalShareAliases와 동일한 구조입니다: existsSync(<coreRoot>/dist/android)를 확인해(android 산출물이 있어야 이 리포지터리에서 codegen이 실행된 것으로 간주) 없으면 로컬 경로를 주입하지 않습니다.

각 네이티브 리포지터리가 자체적으로 구현하며, 이 리포지터리가 강제하지는 않습니다:

플랫폼 주입 방식
Android Gradle 로컬 maven 리포지터리 디렉터리
iOS SPM 로컬 path 의존성
HarmonyOS ohpm file: 의존성
C CMake add_subdirectory 또는 헤더 파일 경로
1. 이 리포지터리에서 tokens/*.json 수정
2. pnpm codegen → dist/가 즉시 갱신
3. 네이티브 리포지터리에서 바로 빌드/실행 → 새 토큰이 반영됨

scripts/resolve-local-tokens.mjs가 이 가드 메커니즘의 구현 스크립트입니다.

  • 로컬 연결은 가족 레이아웃(각 리포지터리가 같은 부모 디렉터리에 있음)에서만 사용할 수 있습니다.
  • 연결이 읽는 것은 dist/이므로, 토큰을 바꾼 뒤 반드시 먼저 codegen을 실행해야 합니다.
  • 릴리스 뒤에는 네이티브 측이 정식 의존성 버전으로 되돌려, 로컬 경로에 장기적으로 의존하지 않도록 해야 합니다.

Copyright © 2024-2026 FengMo WenXue