expoでhrefがexportされていないエラーの対応
tags: javascript react typescript
expoを使用しているreact nativeのプロジェクトで値によって動的にパスを変更したく、処理を書いてexpo routerからexportされている型を使用した所ci上で以下のエラーが出たその対処法
Module ‘“expo-router”’ has no exported member ‘Href’.
原因
expo routerはexpoの開発サーバーを起動した時に自動で型を生成してくれるが、ci上ではexpoを実行していないため型が生成されずにエラーになった
対処法
Typed routes - Expo Documentation のドキュメントを確認した所、開発サーバーを起動せずに以下のコマンドを実行すると型情報を生成できるらしい
npx expo customize tsconfig.json
なのでgithub actionsのtsc
コマンドで型チェックをする前に上記コマンドを実行するようにした所ciが通るようになった(プロジェクトではyarnを使用しているのでyarnになっている)
- run: yarn expo customize tsconfig.json
- run: yarn run typecheck # tscで型チェックを行うscriptsを実行