Next.js 12.1 正式釋出,企業級 Web 應用框架

2022-02-19 09:01:03

Next.js 12.1 已正式。

新特性概覽

  • :支援即時使用getStaticProps重新驗證頁面
  • :引入styled-components和 Relay 等功能
  • 引入使用 SWC 實現零設定支援 Jest
  • :比 Terser 快 7 倍的壓縮速度
  • :減小 Docker 映象體積約 80%
  • 優化穩定性和支援情況

按需使用的 ISR (Beta)

ISR 是 Next.js 9.5 引入的功能,本次的更新提供了按需使用的特性,開發者可按需手動清除特定頁面的 Next.js 快取。

// pages/api/revalidate.js

export default async function handler(req, res) {
  // Check for secret to confirm this is a valid request
  if (req.query.secret !== process.env.MY_SECRET_TOKEN) {
    return res.status(401).json({ message: 'Invalid token' })
  }

  try {
    await res.unstable_revalidate('/path-to-revalidate')
    return res.json({ revalidated: true })
  } catch (err) {
    // If there was an error, Next.js will continue
    // to show the last successfully generated page
    return res.status(500).send('Error revalidating')
  }
}

零設定 Jest 外掛

Next.js 現已支援自動設定 Jest,使用基於 Rust 的 Next.js 編譯器來轉換檔案,包括:

  • 自動模擬樣式表(.css, .module.css.scss變體),以及影象匯入
  • .env載入到process.env
  • 忽略測試解析和轉換的node_modules
  • 忽略測試解析的.next
  • Loading next.config.js for flags that enable Next.js compiler transforms

優化自託管功能

Next.js 現在支援自動建立standalone資料夾,該資料夾僅複製生產部署所需的檔案。這使得自託管 Next.js 應用程式的Docker 映像縮小了約 80% 。

展開閱讀全文