Reactバージョンアップの影響調査

Reactバージョンアップの影響調査
2024/07/01に公開

はじめに

本記事では、Reactのバージョンアップに伴う互換性調査と、安定した移行を実現するための対策について解説します。

今回ご依頼いただいたのは、ウェブ制作会社様の案件です。特殊な要件をReactを用いて実装していましたが、開発者の離脱によりメンテナンスが滞っている状況でした。エンドユーザー様から追加機能の開発依頼を受けたものの、使用予定のライブラリが現在のReactバージョンと互換性がなく、対応が必要な状態でした。

弊社では、以下の方針でReactのバージョンアップと追加機能の実装を支援しました。

バージョンアップの進め方

1. 影響調査と事前準備

Reactのバージョンは16だったため、React 16 → 17 → 18と、2段階に分けてアップグレードを行いました。

最初に、公式リリースノートをもとに、非推奨となった機能、新機能、破壊的変更点を洗い出しました。

Image from Gyazo

参考: React公式リリースノート

影響調査の具体例

  • componentWillMount の削除: これまでクラスコンポーネントで componentWillMount を使用していたコードを useEffect に移行しました。
  • ReactDOM.render の変更: ReactDOM.createRoot を用いた新しいレンダリング方法に対応しました。

2. 依存関係の整理

バージョンアップの影響を受けるライブラリの確認を行いました。特に、Webpack、Jest、React Testing Library のバージョンが影響を受けるため、以下のように対応しました。

  • Webpack: v4 → v5 へアップグレード(css-loader / style-loader も更新)
  • Jest: 最新バージョンに更新し、設定の変更を適用
  • React Testing Library: バージョンを調整し、新しいAPIに対応

この段階で、一部のライブラリをReact本体のアップグレード前に先行更新し、影響を最小限に抑えました。

3. シナリオテスト(E2Eテスト)の導入

バージョンアップ後の動作検証として、Playwright を用いたE2Eテストを事前に実装しました。

  • 2段階バージョンアップに備え、各段階でテストを実施
  • 今後の定期的なバージョンアップも考慮し、自動テスト環境を構築

これにより、Reactのバージョンアップ作業を安全かつスムーズに進めることができました。

バージョンアップによるメリット

1. セキュリティリスクの低減

Reactと関連ライブラリを最新化したことで、既知の脆弱性が解消され、セキュリティの強化につながりました。

2. ビルド時間の短縮

Webpackの更新により、ビルド時間が約20%〜30%短縮されました。開発効率の向上にも寄与しました。

3. システム監視の強化

バージョンアップ後のE2Eテストを定期実行することで、外形監視の役割を担うことが可能になりました。テストが失敗した際に原因調査を行い、エンドユーザー様に迅速な対応ができる体制を構築しました。

まとめ

Reactのバージョンアップは単なる作業ではなく、影響範囲の調査やテストの自動化など、慎重な準備が必要です。今回の対応では、

  • 非推奨機能の対応
  • 依存ライブラリの更新
  • シナリオテストの導入

を行うことで、安全かつスムーズにバージョンアップを完了しました。これにより、システムの安定性向上やセキュリティ強化、運用効率の向上が実現しました。

今後も定期的なバージョンアップと、それに伴う影響調査・テストの重要性が増していくと考えられます。

関連する技術ブログ

お問い合わせ

他にも様々な実績がございますのでお問合せください

お問い合わせ