Next.js 6から7へTypeScriptで移行を運用する手順 実施対応を再現できる形で整理
2025年12月21日
Next.jsはReactベースでSSRなどの設定が大変な部分をまとめてやってくれるフレーム枠です。
前回7月にNext.js 5からNext.js 6へ移行し手から早くも Next.js7 がリリースされました。
変更点としては内包しているWebpackのバージョンがへ4、Babelが7へ
アップグレードされたりとコードが最適化されました。
今回は Next.js7への
マイグレーションのログとして内容をまとめました。
前回の記事 https://t-cr.jp/article/3261645b902aa1216
環境
- React 16.4.1
- Next.js 6.1.1
- typescript 2.9.2
まずパッケージのバージョンをあげてみました。
terminal$ yarn upgrade --latest react react-dom next typescript
packageのバージョン
- react@16.4.1 → react@16.5.2
- react-dom@16.4.1 → react-dom@16.5.2
- next@6.1.1 → next@7.0.0
- typescript@2.9.2 → typescript@3.0.3
早速エラーが・・・。
swiftError: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
at Chunk.get (/Users/hoge/project/node_modules/webpack/lib/Chunk.js:824:9)
at /Users/hoge/project/node_modules/extract-text-webpack-plugin/dist/index.js:176:48
at Array.forEach (<anonymous>)
at /Users/hoge/project/node_modules/extract-text-webpack-plugin/dist/index.js:171:18
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:12:1)
at AsyncSeriesHook.lazyCompileHook (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/Hook.js:154:20)
at Compilation.seal (/Users/hoge/project/node_modules/webpack/lib/Compilation.js:1214:27)
at hooks.make.callAsync.err (/Users/hoge/project/node_modules/webpack/lib/Compiler.js:547:17)
at _done (eval at create (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:9:1)
at _err2 (eval at create (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:50:22)
at Promise.all.then (/Users/hoge/project/node_modules/webpack/lib/DynamicEntryPlugin.js:73:20)
at process._tickCallback (internal/process/next_tick.js:68:7)
Error: Chunk.entrypoints: Use Chunks.groupsIterable and filter by instanceof Entrypoint instead
at Chunk.get (/Users/hoge/project/node_modules/webpack/lib/Chunk.js:824:9)
at /Users/hoge/project/node_modules/extract-text-webpack-plugin/dist/index.js:176:48
at Array.forEach (<anonymous>)
at /Users/hoge/project/node_modules/extract-text-webpack-plugin/dist/index.js:171:18
at AsyncSeriesHook.eval [as callAsync] (eval at create (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:12:1)
at AsyncSeriesHook.lazyCompileHook (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/Hook.js:154:20)
at Compilation.seal (/Users/hoge/project/node_modules/webpack/lib/Compilation.js:1214:27)
at hooks.make.callAsync.err (/Users/hoge/project/node_modules/webpack/lib/Compiler.js:547:17)
at _done (eval at create (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:9:1)
at _err2 (eval at create (/Users/hoge/project/node_modules/webpack/node_modules/tapable/lib/HookCodeFactory.js:32:10), <anonymous>:50:22)
at Promise.all.then (/Users/hoge/project/node_modules/webpack/lib/DynamicEntryPlugin.js:73:20)
at process._tickCallback (internal/process/next_tick.js:68:7)
そのため他のパッケージのバージョンもあげました。
terminal$ yarn upgrade --latest next-redux-wrapper @zeit/next-typescript @zeit/next-css @types/next
packageのバージョン
- next-redux-wrapper@2.0.0-beta.6 → next-redux-wrapper@2.0.0
- @zeit/next-typescript@1.1.0 → @zeit/next-typescript@1.1.1
- @zeit/next-css@0.2.0 → @zeit/next-css@1.0.1
- @types/next@6.0.3 → @types/next@6.1.8
すると無事動作しました。
今回はコードの修正はなくパッケージのアップデートで解決できました。
著書
article2025年12月21日Next.jsとTypeScriptでSSGとSSRの型定義を使い方で整理 データ境界のベストプラクティス
article2025年12月21日Next.jsとTypeScriptでLintと整形をセットアップする手順 ESLint Stylelint PrettierとVSCode自動フォーマット
article2025年12月21日Next.jsをインストールしてTypeScript環境をセットアップする手順 最初に動かすまでを整理
article2025年12月21日Next.js 6から7へTypeScriptで移行を運用する手順 実施対応を再現できる形で整理
article2025年12月21日Next.js 5から6へTypeScriptで移行を運用する手順 実施対応を再現できる形で整理
article2025年12月21日Next.jsでGoogleタグマネージャーを設置する使い方 実装サンプルで導入手順を確認する
article2026年1月2日TypeScriptの型情報でドキュメントを自動生成する使い方 陳腐化を防ぐ運用も整理
article2026年1月2日NuxtとTypeScriptで型安全な開発をセットアップする手順 スタートガイド
article2026年1月2日TypeScriptで認証と認可をセキュアに設計する 使い方と実装手順を整理
article2026年1月2日TypeScriptでESLintカスタムルールを作る使い方 実装と運用ポイントを整理
article2026年1月1日TauriとTypeScriptのユースケース 型安全にデスクトップアプリ開発を進める
article2025年12月31日TypeScriptでUIコンポーネントを設計する 型から考えるPropsと責務分割
article2026年1月2日TypeScriptの型情報でドキュメントを自動生成する使い方 陳腐化を防ぐ運用も整理
article2026年1月2日NuxtとTypeScriptで型安全な開発をセットアップする手順 スタートガイド
article2026年1月2日TypeScriptで認証と認可をセキュアに設計する 使い方と実装手順を整理
article2026年1月2日TypeScriptでESLintカスタムルールを作る使い方 実装と運用ポイントを整理
article2026年1月1日TauriとTypeScriptのユースケース 型安全にデスクトップアプリ開発を進める
article2025年12月31日TypeScriptでUIコンポーネントを設計する 型から考えるPropsと責務分割
blogiPhone 17シリーズの発表!全モデルiPhone 16から進化したポイントを見やすく整理
blogGoogleストアから訂正案内!Pixel 10ポイント有効期限「1年」表示は誤りだった
blog【2025年8月】Googleストア「ストアポイント」は1年表記はミス?2年ルールとの整合性を検証
blogGoogleストアの注文キャンセルはなぜ起きる?Pixel 10購入前に知るべき注意点
blogPixcel 10シリーズの発表!全モデル Pixcel 9 から進化したポイントを見やすく整理
blogフロントエンドエンジニアの成長戦略:コーチングで最速スキルアップする方法
review今の自分に満足していますか?『持たざる者の逆襲 まだ何者でもない君へ』溝口勇児
reviewついに語られた業界の裏側!『フジテレビの正体』堀江貴文が描くテレビ局の本当の姿
review愛する勇気を持てば人生が変わる!『幸せになる勇気』岸見一郎・古賀史健のアドラー実践編で真の幸福を手に入れる
review週末を変えれば年収も変わる!『世界の一流は「休日」に何をしているのか』越川慎司の一流週末メソッド
review新しい自分に会いに行こう!『自分の変え方』村岡大樹の認知科学コーチングで人生リセット
review科学革命から AI 時代へ!『サピエンス全史 下巻』ユヴァル・ノア・ハラリが予見する人類の未来
