Nuxt 3.7
🐣 全新 CLI
我們使用 unjs/citty 重構了 nuxi
,這標誌著 Nuxt 首個依賴新版本的發布,安全地在其自身的儲存庫中。我們對此有宏大的計畫 - 請查看 nuxt/cli 中的一些功能 + 路線圖討論,並隨時貢獻您的想法!
Nuxi 現在已與主要的 nuxt
版本解耦 - 我們計畫在未來更快地迭代和發布 nuxi,因此您可以期待即將到來的新事物!
🕸️ 原生 Web Streams 和 Response
隨著 unjs/h3 和 unjs/nitro 的改進,現在可以直接從伺服器路由返回 Response
物件,這意味著也可以在 Nuxt 中原生返回和處理串流。
👉 請查看 unjs/h3 和 unjs/nitro 發行說明中的完整詳細資訊。
🔥 HTML 渲染最佳化
此版本帶來了伺服器渲染 HTML 回應的一些改進。我們現在在建置時決定是否預載/預先提取資源(因此您可以在 build:manifest
hook 中自訂此設定)。我們現在也直接在 unhead
中管理它們的 HTML 渲染 (#22179),這表示您可以設定 <link>
、<meta>
、<script>
、<style>
等的順序。而且 - 在我們的初步測試中 - 它甚至更快!
可以使用 experimental.headNext
標誌選擇加入即將推出的 head 改進。目前包含基於 capo.js 的新排序演算法 (#22431),並允許啟用未來在 unhead
中發布的最佳化功能
export default defineNuxtConfig({
experimental: {
headNext: true
}
})
我們很樂意聽取您的想法 - 您可以在 此討論 中回覆任何問題/回饋。
🛠️ 建置環境捷徑
在您的 Nuxt 設定中,您現在可以使用 $client
和 $server
捷徑,輕鬆定義僅適用於 Vite 用戶端/伺服器 (#22302) 或 webpack 用戶端/伺服器 (#22304) 建置的設定。這之前僅能透過 vite:extendConfig
和 webpack:config
hooks 實現。
例如
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
。這表示對開發環境(例如 Docker 映像檔)的支援更好,在這些環境中,絕對路徑可能與您的 IDE 不符 (#22410)。
我們還設定了一些額外的編譯器標誌預設值,以符合 Vite/TS 建議 (#22468)。
此外,您現在應該可以在 setPageLayout
以及 <NuxtLayout name>
中獲得版面配置的類型提示存取權 (#22363)。
🦄 非同步上下文支援
如果您曾經遇到「Nuxt context unavailable」的問題,這可能對您有所幫助。我們現在在 Nuxt 和 Nitro 中,在實驗性標誌下,支援 Bun 和 Node 的原生非同步上下文 (#20918)。
這使得在伺服器上使用 Nuxt composables 成為可能,無需確保它們直接在 setup 函數中被呼叫。這也允許在 Nitro 中使用,並提供新的 useEvent()
實用程式,可在伺服器路由中使用。
若要試用,您可以啟用 experimental.asyncContext
export default defineNuxtConfig({
experimental: {
asyncContext: true
}
})
👓 監視器更新
我們修復了監視器的一些問題,這表示您應該可以減少重新啟動伺服器的次數 - 並且如果您正在使用 layers,您應該會看到顯著的效能提升。
⚗️ Nitro 2.6
Nitro 2.6 直接帶來了許多更令人興奮的功能,包括更小、更輕量的伺服器,以及在 .data
目錄中的全新持久性資料儲存。
👉 在完整發行文章中閱讀更多資訊。
✅ 升級
與往常一樣,我們建議的升級方法是執行
npx nuxi upgrade --force
這也將刷新您的 lockfile,並確保您從 Nuxt 依賴的其他相依性(特別是在 unjs 生態系統中)提取更新。
📃 完整變更日誌
在 https://github.com/nuxt/nuxt/releases/tag/v3.7.0 上閱讀完整發行說明