文档
架构
支持的浏览器

Next.js 无需任何配置即可支持现代浏览器

  • Chrome 64+ - Chrome 浏览器 64+
  • Edge 79+ - 边缘 79+
  • Firefox 67+
  • Opera 51+
  • Safari 12+

Browserslist

如果你想要针对特定的浏览器或特性,Next.js 支持在 package.json 文件中使用 Browserslist (opens in a new tab) 配置。Next.js 默认使用以下 Browserslist 配置:

package.json
{
  "browserslist": [
    "chrome 64"
    "edge 79"
    "firefox 67"
    "opera 51"
    "safari 12"
  ]
}

Polyfills

我们注入了 常用的 polyfills (opens in a new tab),包括:

如果你的任何依赖项包含这些 polyfill,它们会在生产版本中自动排除,以避免重复。

此外,为了减小包的大小,Next.js 只会为需要它们的浏览器加载这些 polyfill。全球大部分的网络流量都不会下载这些 polyfill。

自定义 Polyfill

如果你自己的代码或任何外部 npm 依赖项需要目标浏览器不支持的功能(如 IE 11),你就需要自己添加 polyfill。

在这种情况下,你应该在自定义<App> 组件或单独的组件中,添加特定 polyfill 的顶层导入语句。

JavaScript 语言特性

Next.js 允许你开箱即用最新的 JavaScript 特性。除了 ES6 特性 (opens in a new tab) 之外,Next.js 还支持:

服务器端 Polyfills

除了在客户端的 fetch() 之外,Next.js 还在 Node.js 环境中(尚未可用) polyfill 了 fetch()。它使用 undici,与 Node.js 本身使用的实现相同。你可以在服务器代码中(如 getStaticProps/getServerSideProps)使用 fetch(),而无需使用像 isomorphic-unfetchnode-fetch 这样的 polyfill。

TypeScript 特性

Next.js 内置了 TypeScript 支持。 了解更多

自定义 Babel 配置(高级)

你可以自定义 babel 配置。 了解更多