対応ブラウザ
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を必要とするブラウザにのみロードします。世界のWebトラフィックの大部分はこれらのPolyfillsをダウンロードしません。
カスタムPolyfills
独自のコードや外部npm依存関係が、ターゲットブラウザ (IE 11など) でサポートされていない機能を必要とする場合、ご自身でPolyfillsを追加する必要があります。
この場合、カスタム<App>
または個々のコンポーネントで、必要な**特定のPolyfill**をトップレベルでインポートする必要があります。
JavaScript言語機能
Next.jsは、最新のJavaScript機能をすぐに使用できます。ES6機能に加え、Next.jsは以下もサポートします。
- Async/await (ES2017)
- オブジェクト Rest/Spread プロパティ (ES2018)
- ダイナミック
import()
(ES2020) - オプショナルチェイニング (ES2020)
- Nullish Coalescing (ES2020)
- クラスフィールド および 静的プロパティ (ES2022)
- など!
TypeScript機能
Next.jsはTypeScriptを標準でサポートしています。詳しくはこちら。
Babel設定のカスタマイズ (上級)
Babel設定をカスタマイズできます。詳しくはこちら。
この情報は役に立ちましたか?