Nuxt 3.7
🐣 新しい CLI
nuxi
を unjs/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 をご覧ください。