2025年7月14日月曜日
Next.js 15.4
投稿者Next.js 15.4 には、パフォーマンス、安定性、Turbopack 互換性のアップデートが含まれています。今回のリリースでの主な変更点は以下の通りです。
- Turbopack Builds:
next build --turbopackの統合テスト互換性が 100% になりました。 - 安定性の向上: Next.js と Turbopack の安定性およびパフォーマンスが大幅に改善されました。
本ブログ投稿では、次期メジャーリリースである Next.js 16 で導入される新機能のプレビューも紹介しています。
今すぐアップグレードするか、以下で始めましょう
# Use the automated upgrade CLI
npx @next/codemod@canary upgrade latest
# ...or upgrade manually
npm install next@latest react@latest react-dom@latest
# ...or start a new project
npx create-next-app@latestTurbopack Builds
next build --turbopack が、本番ビルド向けの 全 8298 個の統合テストをパス し、vercel.com を強化しました。これは Next.js における Turbopack を安定版とするための重要なマイルストーンです。
チームの現在の最優先事項は、本番チャンク処理によるバンドル最適化の完了と、アルファ版の早期採用者からのバグ修正です。また、内部的には Turbopack の安定性およびパフォーマンスの改善も数多く行いました。
Turbopack がまもなく本番環境での利用に耐えうるようになると確信しており、Next.js 16 でのベータ版リリースを目指して開発を進めています。以前 Turbopack を試された方も、今なら再試行するのに良い時期です。問題が発生した場合は、GitHub Issues にてお知らせください。
Looking Ahead: Next.js 16
過去数ヶ月間、Turbopack による開発者体験と、PPR および use cache による App Router のコア機能の両方で、メジャーな改善を繰り返してきました。これらの機能をデフォルトで有効にする準備はまだできていませんが、この夏に Next.js 16 でユーザーが試せるように基盤を整える予定です。
Next.js 16 で導入される新機能のプレビューを以下に示します。
- Cache Components (beta): 実験的なキャッシング機能(Dynamic IO、
use cache、Partial Prerendering)を統一されたcacheComponentsフラグに統合し、パフォーマンス最適化戦略を簡素化します。Next.js 16 のブログ投稿で、我々のビジョンを詳しく説明します。 - Turbopack Builds (beta):
next build --turbopackを導入し、統合テストを完全にパスさせ、vercel.com のような高トラフィックサイトで内部的に検証済みです。Next.js 16 で、より広範なパブリックベータ版での利用が可能になります。 - Optimized Client-Side Routing: よりスマートなプリフェッチ、改善されたキャッシュ無効化戦略、帯域幅使用量の削減により App Router のナビゲーションを強化し、より高速で応答性の高いナビゲーションを実現します。
- DevTools & Debugging: アプリケーション構造を検査し、
loading.tsxのようなコンポーネントを切り替えるための Route Info を追加します。AI を活用したデバッグワークフローをサポートするために、実験的なブラウザログ転送をターミナルに追加します。 - Node.js Middleware (stable): Next.js 15.2 で最初に導入された、Middleware のための Node.js ランタイムサポートを実験的なステータスから安定版に昇格させます。
- Deployment Adapters (alpha): 開発者がビルドおよびデプロイターゲットをより細かく制御するためのカスタムデプロイメントアダプターを作成できるようにします。
- Minor Deprecations and Changes: Node.js 18 サポート、AMP を非推奨とし、適切な移行ガイドとともに
next/imageAPI の一部を変更します。
私たちの目標は、このアップデートを可能な限りスムーズかつシンプルにすることです。変更は注意深く管理し、混乱を最小限に抑えるとともに、Next.js 16 への移行をサポートするための明確なガイダンスとツールを提供します。
Preview Upcoming Features
canary チャネルを使用し、next.config.js で以下のフラグを有効にすることで、これらの機能の多くを本日より実験的に試すことができます。
import type { NextConfig } from 'next';
const nextConfig: NextConfig = {
experimental: {
// Forward browser logs to the terminal for easier debugging
browserDebugInfoInTerminal: true,
// Enable new caching and pre-rendering behavior
dynamicIO: true, // will be renamed to cacheComponents in Next.js 16
// Activate new client-side router improvements
clientSegmentCache: true,
// Explore route composition and segment overrides via DevTools
devtoolSegmentExplorer: true,
// Enable support for `global-not-found`, which allows you to more easily define a global 404 page.
globalNotFound: true,
// Enable persistent caching for the turbopack dev server and build.
turbopackPersistentCaching: true,
},
};
export default nextConfig;Notable Changes
- [Improvement] Preserve RSC query during redirects (#77963)
- [Improvement] Graceful error fallback for bots (#77916)
- [Improvement] Disallow
unstable_rootParamsin client components (#79471) - [Improvement] Fix
bodySizeLimiterrors and non-multipart actions (#77746) - [Improvement] Respond with 404 for unknown action IDs (#77012)
- [Improvement] Check cache-busting params on RSC requests (#80669)
- [Improvement] Upgrade Vercel OG to 0.7.2 (#81447)
- [Improvement] List
assert/strictas external (#80884) - [Improvement] Omit searchParam data from
FlightRouterStatebefore transport (#80734) - [Improvement] Render streaming metadata on the top level (#80566)
- [Fix] Clone the config module to avoid mutation (#80573)
- [Fix] Bugfix: Propagate
staleTimeto seeded prefetch entry (#81263) - [Fix] Reinstate vary (#79939)
- [Fix] Fix interestingness detection for React Compiler (#79558)
- [Fix] Fix react compiler usefulness detector (#79480)
- [Fix] Better handle edge-case file paths in launchEditor (#79526)
- [Fix] Client router should discard stale prefetch entries for static pages (#79362)
- [Feature] Add
onInvalidatetorouter.prefetch(#77880) - [Feature] Add
prefetch="auto"as an alias toprefetch={undefined}to Link (#78689) - [Feature] Support metadata in global-not-found (#78961)
- [Feature] Restart dev server from error overlay (#80060)
- [Feature] Restart dev server from indicator preferences (#80072)
- [Feature] Add
--debug-prerenderoption fornext build(#80667) - [Feature] Add htmlrewriter to server externals (#80819)
- [Feature] Allow partially prerendering intercepted dynamic routes (#80851)
- [Performance] Check files with SWC before React Compiler (#75605)
- [Performance] Improve static path generation performance and parameter handling (#81254)
- [Misc] Fix
NEXT_CPU_PROFusage during development to allow capturing CPU traces (#81248)
フィードバックを共有して、Next.js の未来を形作りましょう。
コントリビューター
Next.js は、3,000 人以上の個人開発者による共同作業の結果です。このリリースは、以下によって提供されました。
- The Next.js team: Andrew, Ben, Hendrik, Janka, Jiachi, Jimmy, Jiwon, JJ, Josh, Jude, Rob, Sam, Sebastian, Sebbie, Wyatt, and Zack.
- The Turbopack team: Benjamin, Donny, Josh, Luke, Maia, Niklas, Tim, Tobias, and Will.
- The Next.js Docs team: Delba, Rich, Ismael, Joseph, and Lee.
Huge thanks to @sokra, @huozhi, @Marukome0743, @mischnic, @wbinnssmith, @eps1lon, @razzeee, @delbaoliveira, @kdy1, @wyattjoh, @acdlite, @ztanner, @bgw, @jantimon, @lubieowoce, @Fonger, @ospira, @gnoff, @styfle, @Cy-Tek, @timneutkens, @raunofreiberg, @devchaudhary24k, @Neschadin, @OreQr, @drewlong314, @ijjk, @praizjosh, @unstubbable, @lukesandberg, @ScriptedAlchemy, @sqidermad, @Juneezee, @devjiwonchoi, @Kamitenshi, @feedthejim, @leerob, @mauerbac, @miki-tebe, @gaearon, @mrbadri, @luwes, @lucacasonato, @M4xymm, @jirihofman, @vicb, @jackwilson323, @SyMind, @kevva, @xyf7, @gaojude, @dario-piotrowicz, @mastoj, @nicole0707, @lourd, @Karibash, @chipit24, @icyJoseph, @xusd320, @fireairforce, @GenhaoLi, @igas, @Macw07, @amannn, @bcdipesh, @r34son, @ivasilov, @lpalmes, @imskyleen, @teamleaderleo, @vitaliemiron, @agadzik, @chdeskur, @nakanoh, @luiscobot, @GameRoMan, @dferber90, @maurobonfietti, @navandstokes, @sajadtorkamani, @bobziroll, @lumirlumir, @KkOoSsTtAa, @msabramo, @sommeeeer, @schoenwaldnils, @remcohaszing, @HerringtonDarkholme, @bgub, @RobPruzan, @lmammino, @MohammedYehia, @extoci, @padmaia, @aacosta11, @vercel-release-bot, @maral, @ethanniser, @MichalMoravik, @rajrawat37, @kidonng, @dnhn, @kristian240, @rachnac-emeritus, @rortan134, and @nick20name17 for helping!