Nuxt Nation カンファレンスが開催されます。11月12~13日にご参加ください。
リリース·  

Nuxt 3.7

Nuxt 3.7 がリリースされました。新しい CLI、ネイティブ Web ストリームとレスポンス、レンダリングの最適化、非同期コンテキストのサポートなどが含まれています。

🐣 新しい CLI

nuxiunjs/citty を使用してリファクタリングしました。これは、新しいバージョンに依存する最初の Nuxt リリースであり、独自のレポジトリで安全に行われます。これには大きな計画があります。 nuxt/cli で機能とロードマップに関する議論をチェックして、ぜひ貢献してください!

Nuxi は、メインの nuxt バージョンから切り離されました。今後、nuxi をより迅速に反復およびリリースし、新しいものがすぐに登場する予定です。

🕸️ ネイティブ Web ストリームと Response

unjs/h3 および unjs/nitro の改善により、サーバー ルートから Response オブジェクトを直接返すことが可能になりました。これは、Nuxt でネイティブにストリームを返して処理することも可能になったことを意味します。

👉 詳細については、unjs/h3 および unjs/nitro のリリースノートをご覧ください。

🔥 HTML レンダリングの最適化

このリリースでは、サーバーからの HTML レスポンスのレンダリングにおいていくつかの改善が行われています。ビルド時にリソースをプリロード/プリフェッチするかどうかを決定するようになりました (build:manifest フックでカスタマイズできます)。また、unhead (#22179) で HTML のレンダリングを直接管理するようになり、<link><meta><script><style> などの順序を構成できます。そして、予備テストでは、さらに高速になっています!

experimental.headNext フラグを使用すると、今後のヘッドの改善をオプトインできます。これには現在、capo.js (#22431) に基づく新しい順序付けアルゴリズムが含まれており、unhead でリリースされる将来の最適化を有効にできます。

export default defineNuxtConfig({
  experimental: {
    headNext: true
  }
})

皆様のご意見をお待ちしております。問題やフィードバックは、このディスカッションで返信してください。

🛠️ ビルド環境のショートカット

Nuxt の設定で、$client および $server ショートカットを使用して、Vite クライアント/サーバー (#22302) または webpack クライアント/サーバー (#22304) ビルドに固有の設定を簡単に定義できるようになりました。これは以前は、vite:extendConfig および webpack:config フックでのみ可能でした。

例:

export default defineNuxtConfig({
  vite: {
    $client: {
      build: {
        rollupOptions: {
          output: {
            chunkFileNames: '_nuxt/[hash].js',
            assetFileNames: '_nuxt/[hash][extname]',
            entryFileNames: '_nuxt/[hash].js'
          }
        }
      }
    }
  }
})

⚡️ Vite 4.4

Vite をマイナー バージョンから固定解除することを選択しました。つまり、Vite が新しい機能バージョンをリリースするたびに、すぐにオプトインできます。Vite 4.4 には、実験的な Lightning CSS サポートなど、多くの刺激的な機能が含まれています。

👉 詳しくは、Vite のリリースノートをご覧ください。

💪 TypeScript の更新

生成された tsconfig.json で、baseUrl を設定する代わりに、純粋な相対パスを使用するようになりました。これにより、絶対パスが IDE と一致しない可能性がある Docker イメージなどの開発環境のサポートが向上します (#22410)。

また、Vite/TS の推奨事項に合わせて、いくつかの追加のコンパイラ フラグのデフォルトを設定します (#22468)。

さらに、setPageLayout および <NuxtLayout name> で、レイアウトへの型ヒント付きアクセスを取得できるようになりました (#22363)。

🦄 非同期コンテキストのサポート

「Nuxt コンテキストが利用できません」という問題が発生した場合、これはあなたにとって役に立つかもしれません。Nuxt と Nitro の両方で、実験的なフラグの下で、Bun および Node のネイティブ非同期コンテキストをサポートするようになりました (#20918)。

これにより、セットアップ関数で直接呼び出されるようにする必要なく、サーバーで Nuxt コンポーザブルを使用できるようになります。また、サーバー ルートで使用できる新しい useEvent() ユーティリティを使用して、Nitro でも同じことができます。

試すには、experimental.asyncContext を有効にしてください。

export default defineNuxtConfig({
  experimental: {
    asyncContext: true
  }
})

👓 ウォッチャーの更新

ウォッチャーに関するいくつかの問題を修正しました。これにより、サーバーを再起動する必要が少なくなり、レイヤーを使用している場合は、パフォーマンスが大幅に向上するはずです。

⚗️ Nitro 2.6

より小さく、軽量なサーバー、および .data ディレクトリでの新しい永続的なデータ ストレージなど、Nitro 2.6 から直接提供される、さらに多くのエキサイティングな機能があります。

👉 詳しくは、完全なリリース記事をご覧ください。

✅ アップグレード

通常どおり、アップグレードの推奨事項は次のとおりです。

npx nuxi upgrade --force

これにより、ロックファイルも更新され、Nuxt が依存する他の依存関係、特に unjs エコシステムからの更新が確実にプルされます。

📃 完全な変更履歴

完全なリリースノートについては、https://github.com/nuxt/nuxt/releases/tag/v3.7.0 をご覧ください。

← ブログに戻る