支持的浏览器 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。
在这种情况下,你应该在你的 自定义
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 和 Static Properties (ES2022)
以及更多!
TypeScript 特性
Next.js 内置了 TypeScript 支持。了解更多。
自定义 Babel 配置(高级)
你可以自定义 babel 配置。了解更多。