我們正朝著 Nuxt 4 的釋出邁進,但我們在 Nuxt v3.12 中並未止步。
🚀 測試 Nuxt 4 的變化
Nuxt 4 即將到來,現在可以透過在你的 nuxt.config.ts
檔案中設定一個選項來測試下一個主要版本將帶來的行為變化(#26925)
export default defineNuxtConfig({
future: {
compatibilityVersion: 4,
},
})
在合併 Nuxt 4 的 PR 時,我們一直在這些標記後面啟用它們。我們儘可能地爭取向後相容——我們的測試矩陣在 v3 和 v4 相容模式下執行相同的測試用例。
這裡有很多要說的,有 10 多個不同的 PR 和行為變化已被記錄和可測試,但要獲取包括遷移步驟在內的完整詳細資訊,請參閱v4 升級文件。
我們非常感謝您對 Nuxt 4 即將到來的新功能進行早期測試!🙏
📜 Nuxt 指令碼自動安裝
我們一直在逐步努力釋出Nuxt Scripts。它目前處於公開預覽階段,但我們即將釋出正式版本,因此我們為組合式函式添加了一些存根,這些存根在使用時將提示安裝 @nuxt/scripts
模組。
👉 敬請關注釋出——以及一篇解釋更多內容的文章!
🌈 層自動註冊和錯誤修復
就像 ~/modules
一樣,您專案中 ~/layers
目錄中的任何層現在都將自動註冊為專案中的層(#27221).
我們現在還正確載入層依賴項,這應該能解決單體倉庫和 Git 安裝中的一系列問題(#27338).
🌐 內建可訪問性改進
我們現在有一個內建的 <NuxtRouteAnnouncer>
元件和相應的 useRouteAnnouncer
組合式函式,從現在開始,它們將預設新增到新的 Nuxt 模板中。
有關完整詳細資訊,請參閱原始 PR (#25741)和文件。
我們正在繼續開發 nuxt/a11y
——期待未來聽到更多這方面的訊息!
🔥 效能改進
我們還進行了一些效能改進,其中許多都在 compatibilityVersion: 4
標記之後,例如不再使用深度響應式 asyncData 負載。
顯著的改進包括模組去重(#27475)——這主要適用於在層中指定模組的層使用者。在一個專案中,我們看到 Nuxt 啟動時間縮短了 30 秒以上。
我們還透過將常見的 ESM 依賴項排除在預打包之外,縮短了 Vite 開發伺服器的啟動時間,並建議模組作者考慮這樣做(#27372).
我們改進了塊的確定性,因此連續構建不太可能出現*完全*不同的塊雜湊(#27258).
我們從您的伺服器構建中移除了更多的僅客戶端組合式函式(#27044),並減小了伺服器元件負載的大小(#26863).
👨👩👧👦 多應用支援
我們已經進行了一些更改,使我們朝著 Nuxt 本機支援多應用的方向邁進,包括一個 multiApp
實驗性標誌(#27291)以及在執行時並行執行多個 Nuxt 應用程式例項的能力(#27068).
雖然它尚未準備就緒,但請務必關注跟蹤問題,如果您對此感興趣,請隨時參與。
⛑️ 開發體驗提升
我們現在在您的開發伺服器日誌中序列化了更多內容,包括 VNodes(#27309)和URLs。我們還解決了可能導致開發伺服器凍結的錯誤。
當在瀏覽器中訪問私有執行時配置時,我們現在會提供更具資訊量的錯誤訊息通知您(#26441).
🪨 穩定功能
我們已移除了一些已穩定且我們認為不再需要配置的實驗性選項
experimental.treeshakeClientOnly
(自 v3.0.0 起預設啟用)experimental.configSchema
(自 v3.3.0 起預設啟用)experimental.polyfillVueUseHead
(自 v3.4.0 起停用)——可在使用者空間透過外掛實現experimental.respectNoSSRHeader
(自 v3.4.0 起停用)——可在使用者空間透過伺服器中介軟體實現
我們還預設啟用了 scanPageMeta
(#27134)。這會提取您 definePageMeta
宏中的任何頁面元資料,並使其可供模組(如 @nuxtjs/i18n
)使用,以便它們可以對其進行增強。
這解鎖了更好的模組/型別化路由整合,但可能會帶來效能成本——如果您遇到任何問題,請提交問題。
💪 型別改進
我們現在支援伺服器元件中型別化的 #fallback
插槽(#27097).
我們還改進了您生成的 tsconfig.json
中的一些預設值,包括在您本地安裝 TypeScript v5.4 版本時設定 module: 'preserve'
(檢視文件)——參見#26667, #27485.
📦 模組作者/高階使用者改進
我們為模組作者提供了一系列型別改進,包括
- 在
installModule
中支援型別化模組選項(#26744) - 在模組選項中指定與特定構建器(vite/webpack)的相容性(#27022)
- 一個新的
onPrehydrate
鉤子,用於掛接到瀏覽器水合週期(#27037) - 能夠在模組中訪問和更新*已解析*的執行時配置,使用新的構建時
useRuntimeConfig
和updateRuntimeConfig
工具(#27117)
🎨 內聯 UI 模板
如果您之前使用過 @nuxt/ui-templates
,那麼您可能需要知道我們已將其從一個單獨的儲存庫移至nuxt/nuxt單體倉庫中。(這純粹是重構,而非更改,儘管您可以期待 Nuxt v4 的一些新設計。)
✅ 升級
像往常一樣,我們建議您執行以下命令進行升級
npx nuxi@latest upgrade --force
這也將重新整理你的 lockfile,並確保你拉取 Nuxt 依賴的其他依賴項(尤其是在 unjs 生態系統中)的更新。
完整發布說明
衷心感謝參與此次釋出的 75+ 位 Nuxt 貢獻者和社群成員。❤️
最後,感謝您閱讀到這裡!我們希望您喜歡 v3.12,如果您有任何反饋或問題,請告訴我們。🙏
祝您 Nuxting 愉快 ✨