支持的浏览器
Next.js 开箱即用支持现代浏览器,无需额外配置。
- Chrome 64+
- Edge 79+
- Firefox 67+
- Opera 51+
- Safari 12+
Browserslist
如需针对特定浏览器或功能进行适配,Next.js 支持在 package.json
文件中配置 Browserslist。默认情况下 Next.js 使用以下 Browserslist 配置:
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。
自定义 Polyfills
如果您的代码或任何外部 npm 依赖需要目标浏览器不支持的功能(如 IE 11),您需要自行添加 polyfills。
这种情况下,您应该在自定义 <App>
或具体组件中为所需特定 polyfill 添加顶层导入。
JavaScript 语言特性
Next.js 允许您直接使用最新的 JavaScript 特性。除 ES6 特性外,Next.js 还支持:
- Async/await (ES2017)
- 对象展开/剩余属性 (ES2018)
- 动态
import()
(ES2020) - 可选链 (ES2020)
- 空值合并 (ES2020)
- 类字段 和 静态属性 (ES2022)
- 以及更多!
TypeScript 特性
Next.js 内置 TypeScript 支持。了解更多。
自定义 Babel 配置(高级)
您可以自定义 Babel 配置。了解更多。