Supported Browsers
Next.js はゼロ設定でモダンブラウザをサポートします。
- Chrome 64+
- Edge 79+
- Firefox 67+
- Opera 51+
- Safari 12+
Browserslist
特定のブラウザや機能を target したい場合、Next.js は package.json
ファイル内で Browserslist の設定をサポートしています。 Next.js は default で以下の Browserslist 設定を使用します:
{
"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 が含まれている場合、重複を避けるためにそれらは自動的に production build から排除されます。
さらに、バンドルの size を削減するために、Next.js はこれらの polyfills を require するブラウザだけで読み込みます。全世界のウェブトラフィックの大部分では、これらの polyfills をダウンロードしないでしょう。
カスタム Polyfills
あなた自身の code または外部の npm 依存関係が、あなたの target のブラウザー(例:IE 11 など)でサポートされていない require の機能を必要とする場合は、自分で polyfills を追加する必要があります。
この場合、特定のpolyfillを必要とするあなたのCustom <App>
または個々の component に対してトップレベルの import を追加すべきです。
JavaScript Language Features
Next.js は、最新の JavaScript の機能をすぐに利用することを可能にします。ES6 の機能 に加えて、Next.js は以下もサポートしています。
- Async/await (ES2017)
- Object レスト/スプレッドプロパティ (ES2018)
- Dynamic
import()
(ES2020) - Optional Chaining (ES2020)
- Nullish Coalescing (ES2020)
- Class Fields とStatic Properties (ステージ 3 提案の一部)
- そしてもっと!
TypeScript の特徴
Next.js は組み込みの TypeScript サポートがあります。ここで詳細を学びましょう。
Babel Config のカスタマイズ (上級者向け)
babel 設定をカスタマイズすることができます。こちらで詳細を学びましょう。