サポート対象ブラウザ
Next.jsはモダンブラウザをゼロコンフィグでサポートしています。
- Chrome 64以上
- Edge 79以上
- Firefox 67以上
- Opera 51以上
- Safari 12以上
Browserslist
特定のブラウザや機能をターゲットにしたい場合、Next.jsはpackage.json
ファイルでのBrowserslist設定をサポートしています。Next.jsはデフォルトで以下のBrowserslist設定を使用します:
{
"browserslist": [
"chrome 64",
"edge 79",
"firefox 67",
"opera 51",
"safari 12"
]
}
ポリフィル
Next.jsは広く使われるポリフィルを自動的に注入します。これには以下が含まれます:
- fetch() — 代替:
whatwg-fetch
とunfetch
- URL — 代替:
url
パッケージ (Node.js API) - Object.assign() — 代替:
object-assign
,object.assign
,core-js/object/assign
依存関係にこれらのポリフィルが含まれている場合、重複を避けるため本番ビルドから自動的に削除されます。
さらに、バンドルサイズを削減するため、Next.jsはこれらのポリフィルを必要なブラウザにのみロードします。グローバルなウェブトラフィックの大部分ではこれらのポリフィルはダウンロードされません。
カスタムポリフィル
自身のコードや外部npm依存関係がターゲットブラウザ(IE 11など)でサポートされていない機能を必要とする場合、自分でポリフィルを追加する必要があります。
この場合、カスタム<App>
または個々のコンポーネントで、必要な特定のポリフィルをトップレベルでインポートする必要があります。
JavaScript言語機能
Next.jsでは最新のJavaScript機能をすぐに使用できます。ES6機能に加え、Next.jsは以下もサポートしています:
- Async/await (ES2017)
- オブジェクトのRest/Spreadプロパティ (ES2018)
- 動的
import()
(ES2020) - オプショナルチェイニング (ES2020)
- Nullish合体演算子 (ES2020)
- クラスフィールドと静的プロパティ (ES2022)
- その他多数!
TypeScript機能
Next.jsにはTypeScriptサポートが組み込まれています。詳細はこちら
Babel設定のカスタマイズ(上級者向け)
Babelの設定をカスタマイズできます。詳細はこちら