はじめに
React Nativeで開発中に、書いてあるコード通りにビルドできていないかも?と思われる挙動がありました。
先輩に質問したところ、「Metroのキャッシュを消した方がいいかもね」とアドバイスをいただきました。
初めて使うコマンドだったので備忘録として残します。
React NativeでMetroのキャッシュをクリアする方法
結論からいきましょう!!
ターミナルで以下のコマンドを打てばOK🎉
npx react-native start --reset-cache
Metro Bundlerとは
React Nativeのアプリケーションをビルドするためのツールです。
以下、Metroと呼びます。
なぜキャッシュをクリアする??
Metroはビルドを高速化するために、以前のビルド情報をキャッシュしています。
このキャッシュが、新しくライブラリを導入したときやソースコードに大規模な変更が入ったときなどに、問題を起こしてしまうことがあります。キャッシュしている古い情報を元に、ビルドしてしまうことがあるということですね😱
npm start -- --reset-cache
このコマンドを実行すると、Metroが保持しているキャッシュデータが削除され、次のビルド時にすべてのファイルが再解析されます。
いつキャッシュをクリアするか??
キャッシュをクリアするのはエラーの原因が全くわからないときの最終手段だと思って良さそうです。
ソースコードやファイルに変更を加えたにもかかわらず、それがアプリケーションに反映されない場合は、キャッシュをクリアしても良いかもしれませんね🎉
終わりに
実際にコマンドを実行し、キャッシュをクリアしてから再度ビルドしてみたところ、「キャッシュないけどいいの?」的なエラーが出ましたが、問題なくビルドできました。
結局書いてあるコード通りにビルドできていなかったわけではなく、別のエラーだったのですが、学んだ方法は覚えておこうと思います!