釋出·  

Nuxt 3.14

Nuxt 3.14 釋出了——帶來了新的 rspack 構建器、共享資料夾和效能提升!
Daniel Roe

Daniel Roe

@danielroe.dev

在幕後,為了 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'

✨ 新的組合式函式

我們有新的 useResponseHeaderuseRuntimeHook 組合式函式(#27131等等#29741).

🔧 新的模組工具

我們現在有了一個新的 addServerTemplate 工具(#29320)用於新增可在 Nitro 執行時路由中訪問的虛擬檔案。

🚧 v4 變更

我們已經合併了一些只有在 compatibilityVersion: 4 下才生效的變更,但您可以提前選擇啟用

  1. 以前,如果您有一個像 ~/components/App/Header.vue 這樣的元件,它將以 <Header> 的形式在您的開發者工具中可見。從 v4 開始,我們確保它是 <AppHeader>,但這是可選的,以避免破壞您可能實現的任何手動 <KeepAlive>。(#28745).
  2. Nuxt 會在呼叫 pages:extend 之前從您的檔案中掃描頁面元資料。但這導致了一些令人困惑的行為,因為在此刻新增的頁面最終不會受到其頁面元資料的尊重。所以我們現在在呼叫 pages:extend 之前不再掃描元資料。相反,我們有一個新的 pages:resolved 鉤子,它在 pages:extend 之後呼叫,在所有頁面都用其元資料增強之後。我建議透過設定 experimental.scanPageMetaafter-resolve 來選擇啟用此功能,因為它解決了一些錯誤。

🗺️ v3.15 路線圖

它們沒有及時趕上 v3.14,但對於下一個次要版本,您可以期待(除其他外):

  • 模組的自動匯入指令(#29203)
  • “隔離”頁面渲染(#29366)
  • 延遲水合(#26468)

✅ 升級

像往常一樣,我們建議您執行以下命令進行升級

npx nuxi@latest upgrade --force

這也將重新整理你的 lockfile,並確保你拉取 Nuxt 依賴的其他依賴項(尤其是在 unjs 生態系統中)的更新。

完整發布說明

閱讀 Nuxt v3.14.0 的完整發布說明。

非常感謝所有參與此版本的人。我們的下一次釋出將帶來激動人心的內容!❤️

如果你有任何反饋或問題,請隨時告訴我們!🙏