# 支持的浏览器和功能

Next.js 支持 IE11 和所有现代浏览器(Edge、Firefox、Chrome、Safari、Opera 等),并且无须任何配置。

# Polyfills

我们加入了兼容 IE11 所需的 polyfills。此外,我们还加入了被广泛使用的 polyfills,包括:

  • fetch() — 用来替换: whatwg-fetchunfetch
  • URL —用来替换: Node.js 的 url API
  • Object.assign() — 用来替换: object-assignobject.assigncore-js/object/assign

如果你的依赖项中包含了这些 polyfills,则会在生产版本中将其删除,以免重复。

此外,为了减少打包后的大小,Next.js 将只加载浏览器需要的 polyfills。从全球来看,大部分情况下不需要下载这些 polyfills。

# 服务器端的 Polyfills

除了客户端的 fetch(),Next.js 还为 Node.js 环境添加了 fetch()这一 polyfill。你就可以在服务器端代的码中直接使用 fetch()了(例如 getStaticProps/getServerSideProps),从而无需再使用类似 isomorphic-unfetchnode-fetch之类的 polyfills 了。

# 自定义 Polyfills

如果你自己的代码或任何外部的 npm 依赖项需要目标浏览器具有其不支持的功能,则需要你自己添加响应的 polyfills 了。

在这种情况下,你应该在 <App>](/docs/advanced-features/custom-app.md) 或单个组件中导入(impot)你所需要的 特定的 polyfill

# JavaScript 语言

Next.js 允许你直接使用最新的 JavaScript 功能。除了 ES6 功能 外,Next.js 还支持:

  • Async/await (ES2017)
  • Object Rest/Spread Properties (ES2018)
  • Dynamic import() (ES2020)
  • Optional Chaining (ES2020)
  • Nullish Coalescing (ES2020)
  • Class Fields and Static Properties (part of stage 3 proposal)
  • 等等!

# TypeScript 语言

Next.js 内置了对 TypeScript 的支持。 点击此处了解更多信息

# 自定义 Babel 配置(高级)

你可以自定义 babel 的配置。 点击此处了解更多信

Last Updated: 5/13/2023, 8:55:38 PM