introduction

Next.js 支持 IE11以及所有现代浏览器(Edge,Firefox,Chrome,Safri,Opera,其他)而无需其他配置 .

Polyfills

它注入了许多通用的腻子进行辅助,例如

  • fetch() 替代whatwg-fetch以及 unfetch
  • URL 替代 来自Node.js的url
  • Object.assign 替代object-assign``object.assign以及 core-js/object/assign

如果你的依赖已经包括了这些腻子,它们能够被自动的从生产构建中消除避免重复 …

除此之外,为了减少打包尺寸,Next.js 仅仅会加载浏览器需要它们的腻子,全球大多数网络流量都不会下载这些聚合填充 …(因为这些浏览器可能自身已经包含) …

自定义Polyfills

如果你的代码或者外部npm 依赖需要不被目标浏览器支持的特性(例如IE 11),你需要自己增加对应的填充 …

在这种情况下,你可能需要增加一个顶级的导入(针对特定的填充)到自定义的<App>或者独立的组件 …

JavaScript 语言特性

Next.js 允许你使用最新的JS特性d(开箱即用),除了ES6特性,还支持:

Server-Side Polyfills

除了fetch()等在客户端的填充,Next.js 填充 fetch在Node.js 环境,你能够在服务端代码中使用fetch()(例如getStaticProps/getServerSideProps),而无需使用例如isomorphic-unfetch或者 node-fetch

Typescript 特性

Next.js 内置了Typescript的支持 …

定制Babel 配置(高级特性)

查看高级部分的教程 ….