支持的浏览器
Next.js 支持**现代浏览器**,无需任何配置。
- Chrome 64+
- Edge 79+
- Firefox 67+
- Opera 51+
- Safari 12+
Browserslist
如果您想定位特定浏览器或功能,Next.js 支持在您的package.json
文件中使用Browserslist配置。默认情况下,Next.js 使用以下 Browserslist 配置
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。
自定义 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 配置。 在此处了解更多。
这有帮助吗?