コンテンツにスキップ

ローカル連携

ネイティブ端の開発では、トークンを 1 回変えるたびに 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