Expo + React Native Web + Supabaseのアプリを起動したところ、エラーで起動できなかったので、その対応についての備忘録。
問題
expo start --web
でアプリを起動すると
Error: Cannot find module ‘metro/src/lib/TerminalReporter
や
ReferenceError: window is not defined
といったエラーでアプリを起動できない。
対応
-
React NativeのJSバンドラのインストール
以下のコマンドを実行してMetroパッケージをインストールする。
npm i --save-dev metro
-
WEBアプリの出力方法の設定
app.json
ファイルのexpo.web.output
をsingle
に設定する。{ "expo": { "web": { "bundler": "metro", "output": "single" } } }
上記設定後にexpo start --web
を行うと、エラーが解消しているのが確認できるかと思います。
参考ウェブサイトなど
- Expo Docs
Publish websites with Metro
以上です。