Upgrade to Pro — share decks privately, control downloads, hide ads and more …

小さく進める Nuxt 3 移行

小さく進める Nuxt 3 移行

wattanx

May 31, 2023
Tweet

More Decks by wattanx

Other Decks in Programming

Transcript

  1. 移行の方針 • コード行数:約 30 万行 • ページ数:約 170 ページ •

    Vue コンポーネント:約 1000 個 プロダクトの規模感
  2. 移行の方針 • https://github.com/nuxt/bridge • Nuxt 3 と上方互換性のあるライブラリ (Nuxt 3 の機能の一部が

    Nuxt 2 でも使えるようなる) • 使うと、Nuxt 3 へバージョンアップする際の差分を小さくできる Nuxt Bridge とは
  3. 移行の方針 1. Nuxt 3, Vue 3 に直接移行するのは難易度が高いため 2. Nuxt Bridge

    なら、同じリポジトリ内で移行しやすく、Nuxt 3の恩 恵をある程度受けられるため 3. Nuxt Bridgeで動かない Nuxt Modules がいくつかあるが、それらは 剥がして自分達で作れるため
  4. 実際にやっていること 1. Nuxt Bridge の導入(bridge: falseで) 2. Jest -> Vitest

    へ移行 3. Vue 2.7 へ移行 4. Vue 3 移行の準備 5. Nuxt Bridge の有効化 6. Nuxt 3 互換のAPI への移行
  5. 実際にやっていること 1. Nuxt Bridge の導入(bridge: falseで) 2. Jest -> Vitest

    へ移行 3. Vue 2.7 へ移行 4. Vue 3 移行の準備 5. Nuxt Bridge の有効化 6. Nuxt 3 互換のAPI への移行
  6. 実際にやっていること(Nuxt Bridge の有効化) • Nuxt Bridge では、@nuxtjs/composition-api を削除する必要がある (Nuxt Bridge

    に同様のComposable 関数が含まれているため) • ただし、変更が入った Composable 関数があるので対応する必要がある https://nuxt.com/docs/bridge/bridge-composition-api • @nuxtjs/composition-api を使っていない場合は、何もしなくても有効 化できるかもしれません
  7. 実際にやっていること(Nuxt 3 互換のAPI への移行) • Nuxt Bridge でも useState が利用できるので、Vuex

    から useState へのマイグレーションもできる (Nuxt 3 では Nuxt 2 の store ディレクトリがサポートされなくなる)