【ReactNative】ExpoSDKv49→51にアップグレード
以前の記事と同様に、実機での検証が出来なくなったのでアップグレードします。
実は前回の記事で46にアップグレード後、49へのアップグレードも行っていたのですが記事を残していませんでした。
多分その時は何も問題なくアップグレード出来てしまったんでしょうね。
ひとまず前回同様、expo upgradeを実行してみます。
> expo upgrade
すると、なんかエラーがでました。
× Failed to install expo package with error: yarnpkg exited with non-zero code: 1
yarnpkg exited with non-zero code: 1
Error: yarnpkg exited with non-zero code: 1
at ChildProcess.completionListener (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\node_modules\@expo\spawn-async\src\spawnAsync.ts:65:13)
at Object.onceWrapper (node:events:628:26)
at ChildProcess.emit (node:events:513:28)
at ChildProcess.cp.emit (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\node_modules\cross-spawn\lib\enoent.js:34:29)
at maybeClose (node:internal/child_process:1093:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
…
at spawnAsync (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\node_modules\@expo\spawn-async\src\spawnAsync.ts:26:19)
at YarnPackageManager._runAsync (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\node_modules\@expo\package-manager\src\NodePackageManagers.ts:314:31)
at YarnPackageManager.addWithParametersAsync (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\node_modules\@expo\package-manager\src\NodePackageManagers.ts:259:16)
at YarnPackageManager.addAsync (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\node_modules\@expo\package-manager\src\NodePackageManagers.ts:263:5)
at upgradeAsync (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\src\commands\info\upgradeAsync.ts:496:7)
at actionAsync (C:\Users\macar\AppData\Roaming\npm\node_modules\expo-cli\src\commands\info\upgradeAsync.ts:42:3)
このエラーは以下を参考に解消しました。
yarn.lockファイルと.expoフォルダを削除するという対応です。
expo upgradeが完了したタイミングで以下のメッセージが出力されました。
アラートが挙がっているものはexpo upgradeコマンドでは自動アップデートされなかったようです。
とりあえず今は実機で検証出来る状態にすることを優先するのでスルーします。
✅ The following packages were updated:
expo-status-bar, expo-updates, react, react-dom, react-native, @react-native-async-storage/async-storage, @react-native-community/datetimepicker, react-native-gesture-handler, react-native-maps, react-native-reanimated, react-native-safe-area-context, react-native-screens, react-native-web, typescript, @babel/core, @types/react, expo🚨 The following packages were not updated. You should check the READMEs for those repositories to determine what version is compatible with your new set of packages:
@fortawesome/fontawesome-svg-core, @fortawesome/free-solid-svg-icons, @fortawesome/react-fontawesome, @react-native-community/masked-view, @react-native-firebase/app, @react-navigation/drawer, @react-navigation/native, @react-navigation/stack, @types/moment, @types/react-native-calendars, @types/react-native-material-ripple, @types/react-native-table-component, @types/react-native-vector-icons, deprecated-react-native-prop-types, eas-cli, expo-cli, firebase, moment, patch-package, postinstall-postinstall, react-native-calendars, react-native-dropdown-picker, react-native-elements, react-native-material-ripple, react-native-paper, react-native-table-component, react-native-toast-message, react-native-vector-icons, react-navigation, react-navigation-stack, @types/react-native, @typescript-eslint/eslint-plugin, @typescript-eslint/parser, eslint, eslint-config-prettier, eslint-plugin-prettier, prettierPlease refer to the release notes for information on any further required steps to update and information about breaking changes:
https://expo.dev/changelog/2024/05-07-sdk-51You should also look at the breaking changes from a release that you skipped:
- https://expo.dev/changelog/2024/01-18-sdk-50
yarn startコマンドで起動し、Androidエミュレータ上にアプリをデプロイしたところアプリ起動できました!
ただ、起動後にVSCodeのコンソール上に以下の警告文が出力されていたので今後コードを改善していきます。
ERROR Warning: TextElement: Support for defaultProps will be removed from function components in a future major release. Use JavaScript default parameters instead.
in TextElement