期間: 2026-09-17 〜 2026-09-24 · PR 14 件(新機能 4 / 変更・修正 9 / その他 1)
新機能
ローディング画面を WebGPU パーティクルの山脈アニメーションに変更(#36178)
何ができるようになったか
Nuxt のローディング画面が、WebGPU でパーティクルによる山脈を描画する新しいアニメーションに置き換わった。
- 仕組み: シェーダー1つ・描画コール1つで、リッジ状の高さマップを遠近法でサンプリングし、スカイラインのオクルージョンも計算して山脈を表現する
- UI: ロゴ周辺は空けてあり、ホバーするとパーティクルに衝撃波が走る。進捗バーは
window.__NUXT_LOADING_STATE__かnuxt:loading-stateイベントを読み取り、無ければ不確定表示のまま- フォールバック: WebGPU が使えない環境では canvas を出さずロゴのみの画面になる。
prefers-reduced-motionではアニメーションを止める
⏳ 未リリース · トピック: UIテンプレート・ローディング画面
開発時の SSR スタックトレースをソースへ正しくマッピング(#36258)
何ができるようになったか
開発中にサーバー側でエラーが起きたとき、スタックトレースが自分のソースコードの位置・コードフレームまで正しくマッピングされるようになった。
- 仕組み: Nuxt のエラーハンドラー内で、エラーを読み取る前にマッピング処理を行うよう変更。
charset=utf-8の指定が無いインラインソースマップも読めるようにし、マッピング後の列番号は V8 のスタックと同じ 1-based に統一した- Vite の変換エラー: vite-node のソケット経由で転送される Vite の変換失敗が
loc・plugin・pluginCodeを保持するようになり、エラーハンドラーがmessageを再パースせずに正確な位置を表示できる- 公開先: マッピング済みのソースマップは
nitroApp.ssrSourceMaps(getSourceMap・getCodeなど)として Nitro 側に公開される
⏳ 未リリース · トピック: 開発時エラー表示
開発時のエラーレポートをリモート peer 向けにスコープ可能に(#36389)
何ができるようになったか
danielroe/my-bad側の対応する変更を取り込み、Docker 上の dev サーバーなどネットワーク越しの接続でも、意図した範囲でエラーレポートのデータをストリーミングできるようになった。
⏳ 未リリース · トピック: 開発時エラー表示
統一されたクライアント側プリフェッチスケジューラーを追加(#36391)
何ができるようになったか
ルートチャンク・レイアウト/ミドルウェアチャンク・
_payload.json・island の JSON・リソースヒントなど、これまでバラバラな方式で行っていたプリフェッチ/プリロードを、1つの内部スケジューラーに統一した。
- タスクの単位: 各プリフェッチ処理は「キー(重複排除用)」「優先度」「スコープ(ナビゲーション時のクリーンアップ用)」「グループ(遷移先のパス・クエリ単位)」を持つタスクとして扱われる
- ナビゲーション時: 進行中の
navigationスコープの作業は中断してキューを破棄するが、遷移先のペイロードだけは残す- 低速回線・非表示タブ:
saveDataや 2G 回線の検出、タブが非表示、ナビゲーション中といった条件では作業をバックログに保持し、条件が解消すると再開する(以前は単に破棄されていた)- Prioritized Task Scheduling API を利用する
⏳ 未リリース · トピック: プリフェッチ・ナビゲーション
変更・修正
dedupe 対象パッケージが importer ベースの外部化対象から除外されるよう修正(#36363)
Before
nitro のトレーシングに関する問題(nitrojs/nitro#4468、nitrojs/nitro#4456)により、同じベア指定子を指す絶対パスが複数あると、出力に必要なファイルが欠落することがあった(例: 新しいバージョンの vue-router が持つ
vue-router.node.mjsを、古いバージョンを先に見つけたために nitro がコピーしない)。
After
vue・vue-routerのように dedupe(重複排除)されるべきパッケージについては、絶対パスによる外部化(externalisation)を無視するようにした。
⏳ 未リリース · トピック: モジュール解決・ビルド
nitro とその暗黙の依存関係をホイスティングに依存せず解決するよう変更(#36366)
Before
nitro とその暗黙の依存関係の解決が、パッケージマネージャーのホイスティングに依存する形になっていた(#35375)。
After
ホイスティングに依存せずに nitro とその暗黙の依存関係を解決するよう変更した。以前の試み(#35380)を、現在の nitro 解決の形に合わせて作り直したもの。
⏳ 未リリース · トピック: モジュール解決・ビルド
consola・cookie-es・hookable の型を nuxt core の公開 API として切り出し(#36368)
Before
consola・cookie-es・hookableの型を、Nuxt 自身が追跡できる形の公開 API として持っていなかった。
After
これらの型を nuxt core の API として切り出し、
nuxt/appの公開 API のうちより多くの部分を Nuxt 自身が持つようにした。
⏳ 未リリース · トピック: アプリコンテキスト・ランタイム
クライアント環境から unctx を除去し、単一 app.config での defu 呼び出しを省略(#36371)
Before
ブラウザには存在しない
AsyncLocalStorageのために、クライアント環境でもunctx(約 1KB)を読み込んでいた。またapp.configが1つしか無い場合でも、defuによる不要なマージ処理を行っていた。
After
クライアント環境では
unctxを使わないようにし、app.configが1つだけの場合はdefuの呼び出しを省略するようにした。
⏳ 未リリース · トピック: アプリコンテキスト・ランタイム
ssrFixStacktrace を await するよう修正(#36372)
Before
ssrFixStacktraceの失敗が catch/抑制されておらず、Cannot assign to read only property 'stack' of object 'Page not found: /favicon.ico'のようなエラーで落ちることがあった。
After
ssrFixStacktraceの呼び出しをawaitするようにし、失敗を捕捉できるようにした。
⏳ 未リリース · トピック: 開発時エラー表示
vite-server で public ファイルのインデックスを1度だけ行うよう変更(#36373)
Before
public/配下のファイルを、リクエストのたびにファイルシステムへ問い合わせて確認していた。
After
public ファイルの一覧を一度だけインデックス化するようにし、vite-server のパフォーマンスが 3〜5% 向上した。
⏳ 未リリース · トピック: モジュール解決・ビルド
vite の dev 環境で nuxt 自体が外部化されてしまう不具合を修正(#36370)
Before
Nuxt 本体のワークスペースリンクが
node_modulesの外で解決される環境(Nuxt リポジトリの playground など)以外では、nuxtパッケージが Vite の dev 環境で外部化されてしまう問題があった(#36369)。
After
noExternalの対象にnuxtとnightly版を追加し、外部化されないようにした。
⏳ 未リリース · トピック: モジュール解決・ビルド
開発者が設定した appSecret を上書きしないよう修正(#36397)
Before
#35874 の変更後、開発者が既に
NUXT_APP_SECRETを設定している場合への後方互換が十分でなかった。
After
開発者が設定した
appSecretを上書きしないようにし、使用箇所(point-of-use)でのみ警告を出すようにした。
⏳ 未リリース · トピック: アプリシークレット
nitro・vite-server 間でエラー処理を共通化(#36398)
Before
nitro と vite-server のビルダーが、それぞれ独立に
my-badのエラーレポートを組み立て、スタックのマッピングなどを重複して行っていた。
After
ビルダー間でエラー処理を共通化した。ビルダーごとに提供できる
createDevErrorReporter()を新設し、describeError・isExpectedError・appendVary・isJsonRequestを1つに統一。error-500テンプレートはnuxtパッケージ側に移し、nitro 側のエラーユーティリティファイルは削除した。
⏳ 未リリース · トピック: 開発時エラー表示
その他
- chore: update ui templates in precommit hook(#36383)⏳ 未リリース