釋出·  

Nuxt 3.7

Nuxt 3.7 釋出了,帶來了新的 CLI、原生 Web Streams 和響應、渲染最佳化、非同步上下文支援等諸多功能。
Daniel Roe

Daniel Roe

@danielroe.dev

🐣 全新的 CLI

我們使用unjs/citty重構了 nuxi,這是第一個依賴於新版本 Nuxt 的版本,安全地位於其自己的儲存庫中。我們對此有宏偉的計劃——請檢視以下連結中的一些功能 + 路線圖討論nuxt/cli並隨時貢獻!

Nuxi 現在與主 nuxt 版本解耦——我們計劃未來更快地迭代和釋出 nuxi,因此您可以期待新功能即將推出!

🕸️ 原生 Web Streams 和 Response

隨著unjs/h3等等unjs/nitro的改進,現在可以直接從伺服器路由返回 Response 物件,這意味著在 Nuxt 中原生返回和處理流成為可能。

👉 請檢視unjs/h3等等unjs/nitro發行說明

中的完整詳細資訊。

🔥 HTML 渲染最佳化#22179)中管理它們的 HTML 渲染,這意味著您可以配置 <link><meta><script><style> 等的**順序**。而且——在我們的初步測試中——它甚至更快了!

可以透過 experimental.headNext 標誌選擇加入未來的頭部改進。這目前包括基於capo.js (#22431()的新排序演算法,並允許在 unhead 釋出時啟用未來的最佳化

export default defineNuxtConfig({
  experimental: {
    headNext: true
  }
})

我們很想聽聽您的想法——您可以在此討論.

中回覆任何問題/反饋。

🛠️ 構建環境快捷方式#22302)或 webpack 客戶端/伺服器(#22304)構建的配置。以前這隻能透過 vite:extendConfigwebpack: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。這意味著更好地支援像 docker 映象這樣的開發環境,其中絕對路徑可能與您的 IDE 不匹配(#22410).

我們還設定了一些額外的編譯器標誌預設值以匹配 Vite/TS 建議(#22468).

此外,您現在應該可以在 setPageLayout<NuxtLayout name> 中獲取佈局的型別提示訪問(#22363).

🦄 非同步上下文支援

如果您曾遇到“Nuxt context unavailable”問題,這可能是為您準備的。我們現在在 Nuxt 和 Nitro 中都支援 Bun 和 Node 的原生非同步上下文,透過實驗性標誌啟用(#20918).

這使得在伺服器上使用 Nuxt 可組合函式**無需**確保它們直接在設定函式中被呼叫。它還允許在 Nitro 中實現相同的效果,其中包含一個新的 useEvent() 實用工具,可在伺服器路由中使用。

要試用它,您可以啟用 experimental.asyncContext

export default defineNuxtConfig({
  experimental: {
    asyncContext: true
  }
})

👓 觀察器更新

我們修復了一些觀察器問題,這意味著您應該更少地需要重新啟動伺服器——如果您正在使用層,您應該會看到顯著的效能提升。

⚗️ Nitro 2.6

Nitro 2.6 帶來了更多令人興奮的功能,包括更小、更輕量的伺服器以及在 .data 目錄中新的持久資料儲存。

👉 在完整發行文章.

✅ 升級

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

npx nuxi upgrade --force

中閱讀更多。這將重新整理您的鎖檔案,並確保您從 Nuxt 依賴的其他依賴項中拉取更新,尤其是在unjs生態系統中。

📃 完整更新日誌

閱讀完整的發行說明:https://github.com/nuxt/nuxt/releases/tag/v3.7.0