支援的瀏覽器
Next.js 零設定支援現代瀏覽器。
- Chrome 64 以上版本
- Edge 79 以上版本
- Firefox 67 以上版本
- Opera 51 以上版本
- Safari 12 以上版本
瀏覽器列表
如果您想針對特定的瀏覽器或功能,Next.js 在您的 package.json
檔案中支援 瀏覽器列表 設定。Next.js 預設使用以下瀏覽器列表設定:
package.json
{
"browserslist": [
"chrome 64",
"edge 79",
"firefox 67",
"opera 51",
"safari 12"
]
}
Polyfills (相容性程式碼)
我們注入了 廣泛使用的 polyfills (相容性程式碼),包含:
- fetch() — 取代:
whatwg-fetch
和unfetch
。 - URL — 取代:
url
套件 (Node.js API)。 - Object.assign() — 取代:
object-assign
、object.assign
和core-js/object/assign
。
如果您的任何依賴項包含這些 polyfills,它們將會在正式版建置過程中自動移除,以避免重複。
此外,為了減少套件大小,Next.js 只會為需要它們的瀏覽器載入這些 polyfills。全球大部分的網路流量將不會下載這些 polyfills。
自訂 Polyfill
如果您的程式碼或任何外部 npm dependencies 需要您的目標瀏覽器(例如 IE 11)不支援的功能,您需要自行新增 polyfill。
在這種情況下,您應該在您的自訂 <App>
或個別元件中,為您需要的特定 polyfill 新增一個頂層 import。
JavaScript 語言特性
Next.js 讓您可以直接使用最新的 JavaScript 特性。除了 ES6 特性 之外,Next.js 也支援
- Async/await (ES2017)
- 物件的其餘/展開屬性 (ES2018)
- 動態
import()
(ES2020) - 選鏈 (ES2020)
- 空值合併運算子 (ES2020)
- 類別欄位 和 靜態屬性 (ES2022)
- 還有更多!
TypeScript 功能
Next.js 內建 TypeScript 支援。在此了解更多。
自訂 Babel 設定 (進階)
您可以自訂 Babel 設定。在此了解更多。
這有幫助嗎?