ローカル連携
ネイティブ端の開発では、トークンを 1 回変えるたびに core のリリースを待ち、その後で依存を更新する必要があり、フィードバックループが長すぎました。
ファミリーレイアウト(各リポジトリが同じ親ディレクトリの下)では、ネイティブリポジトリのローカル開発時に存在性ガード付きのローカル解決を通じて本リポジトリの dist/ 生成物を直接読み込みます:トークンを変更した後に本リポジトリで pnpm codegen を再実行すれば即座に反映され、パッケージの公開は不要です。本リポジトリが存在しない場合(CI での単一リポジトリ clone など)は、各プラットフォームの公開済みパッケージへ自動的にフォールバックします。
ガードの仕組みは web 血脈の createLocalShareAliases と同構です:existsSync(<coreRoot>/dist/android) を検査し(android 生成物が存在して初めて本リポジトリで codegen 済みと見なします)、存在しなければローカルパスを注入しません。
各端の注入方法
Section titled “各端の注入方法”各ネイティブリポジトリが独自に実装するもので、本リポジトリは強制しません:
| プラットフォーム | 注入方法 |
|---|---|
| Android | Gradle のローカル maven リポジトリディレクトリ |
| iOS | SPM のローカル path 依存 |
| HarmonyOS | ohpm の file: 依存 |
| C | CMake の add_subdirectory またはヘッダーパス |
典型的なワークフロー
Section titled “典型的なワークフロー”1. 本リポジトリで tokens/*.json を編集2. pnpm codegen → dist/ が即座に更新3. ネイティブリポジトリでそのままビルド / 実行 → 新しいトークンが反映済みscripts/resolve-local-tokens.mjs がこのガードの実装スクリプトです。
- ローカル連携はファミリーレイアウト(各リポジトリが同じ親ディレクトリの下)でのみ利用できます。
- 連携が読むのは
dist/なので、トークンを変更したら必ず先に codegen を実行してください。 - リリース後はネイティブ端を正式な依存バージョンに戻し、ローカルパスへの長期依存を避けてください。
Copyright © 2024-2026 FengMo WenXue