Web(Next.js)とモバイル(React Native/Expo)を並行開発しています。型定義・ロジック・APIクライアントを共通化したいのですが、monorepoの組み方でハマっています。
コード共有とは別軸で、UI共通化はやめた方がいいです。Web/Native でレイアウト原則が違うので、画面UIは別実装、ロジック層を共通化、というのが現実解です。
Turborepo + pnpm workspaces の組み合わせが鉄板です。`packages/shared`に型定義・APIクライアント・ユーティリティを置き、apps/web・apps/mobileから`@your-org/shared`でインポート。Expoは`metro.config.js`でmonorepo対応設定が必要です。