【React Native】Invariant Violation "main" has not been registered... のエラーについて
このエラーが起こった原因(私の場合)
yarn
を使ってライブラリの依存管理をしているのですが、不要なライブラリを削除した後にこのエラーが出ました。おそらくパッケージマネージャ自体の何らかの不具合によるものだと思われます。
環境
package.json
の一部抜粋です。
"dependencies": {
"expo": "^44.0.0",
"react": "17.0.1",
"react-native": "0.64.3",
}
エラー文
Invariant Violation "main" has not been registered. This can happen if: *Metro (the local dev server)
is run from the wrong folder. Check if Metro is running, stop it and restart it in the current project.*
A module failed to load due to an error and `AppRegistry.registerComponent` wasn't called.
解決方法
私の場合、不要なライブラリの削除を行った直後にこのエラーが突然出るようになったので、yarn
によってnode_modules
とyarn.lock
に変更が入った不具合が生じたと推測しています。
これを解決するために、node_modulesとyarn.lockの削除と再生成を行いました。次の通りの手順を取りました。
node_modules
とyarn.lock
の削除yarn install
コマンドの実行
最後に
これ以外の原因で同じエラーが出ることがあるそうですが、今回は原因が単純だったので対応も楽でした。やはりこまめにブランチを切っておくことが大事。