在幕後,為了 Nuxt v4 的釋出,我們做了很多準備工作(特別是在 unjs
方面,為 Nitro v3 做了準備!)。
jiti
提供支援的更快啟動 ⚡️ 由
現在,Nuxt 配置檔案以及模組和其他構建時程式碼的載入都由 jiti
v2 提供支援。您可以在jiti v2 釋出說明中檢視更多關於此版本的資訊,但其中最重要的部分是(在可能的情況下)原生 node esm 匯入,這意味著更快的啟動。✨
📂 用於與客戶端/伺服器共享程式碼和型別的共享資料夾
您不應該在 Nitro 程式碼中匯入 Vue 應用程式程式碼(反之亦然)。但這在共享不依賴於 Nitro/Vue 上下文的型別或實用程式時造成了摩擦。
為此,我們有了一個新的 shared/
資料夾(#28682)。您不能將 Vue 或 Nitro 程式碼匯入到此資料夾中的檔案,但它會生成自動匯入(如果您使用 compatibilityVersion: 4
),您可以在應用程式的其餘部分中使用。
如果需要,您可以使用指向此資料夾的新 #shared
別名。
共享資料夾與您的 server/
資料夾並排。(如果您使用 compatibilityVersion: 4
,這意味著它不在您的 app/
資料夾中。)
rspack
構建器 🦀
我們很高興宣佈為 rspack
提供新的第一類 Nuxt 構建器。它仍然是實驗性的,但我們已經重構了內部 Nuxt 虛擬檔案系統以使用 unplugin
,從而使其成為可能。
請告訴我們您是否喜歡它——並且隨時提出您遇到的任何問題。
👉 要嘗試它,您可以使用這個 starter——或者只安裝 @nuxt/rspack-builder
並在您的 nuxt 配置檔案中設定 builder: 'rspack'
。
✨ 新的組合式函式
我們有新的 useResponseHeader
和 useRuntimeHook
組合式函式(#27131等等#29741).
🔧 新的模組工具
我們現在有了一個新的 addServerTemplate
工具(#29320)用於新增可在 Nitro 執行時路由中訪問的虛擬檔案。
🚧 v4 變更
我們已經合併了一些只有在 compatibilityVersion: 4
下才生效的變更,但您可以提前選擇啟用。
- 以前,如果您有一個像
~/components/App/Header.vue
這樣的元件,它將以<Header>
的形式在您的開發者工具中可見。從 v4 開始,我們確保它是<AppHeader>
,但這是可選的,以避免破壞您可能實現的任何手動<KeepAlive>
。(#28745). - Nuxt 會在呼叫
pages:extend
之前從您的檔案中掃描頁面元資料。但這導致了一些令人困惑的行為,因為在此刻新增的頁面最終不會受到其頁面元資料的尊重。所以我們現在在呼叫pages:extend
之前不再掃描元資料。相反,我們有一個新的pages:resolved
鉤子,它在pages:extend
之後呼叫,在所有頁面都用其元資料增強之後。我建議透過設定experimental.scanPageMeta
為after-resolve
來選擇啟用此功能,因為它解決了一些錯誤。
🗺️ v3.15 路線圖
它們沒有及時趕上 v3.14,但對於下一個次要版本,您可以期待(除其他外):
✅ 升級
像往常一樣,我們建議您執行以下命令進行升級
npx nuxi@latest upgrade --force
這也將重新整理你的 lockfile,並確保你拉取 Nuxt 依賴的其他依賴項(尤其是在 unjs 生態系統中)的更新。
完整發布說明
非常感謝所有參與此版本的人。我們的下一次釋出將帶來激動人心的內容!❤️
如果你有任何反饋或問題,請隨時告訴我們!🙏