Поддерживаемые браузеры
Next.js поддерживает современные браузеры без дополнительной настройки.
- Chrome 64+
- Edge 79+
- Firefox 67+
- Opera 51+
- Safari 12+
Bраузерлист (Browserslist)
Если вам нужно настроить поддержку конкретных браузеров или функций, Next.js поддерживает конфигурацию Browserslist в файле package.json
. По умолчанию Next.js использует следующую конфигурацию Browserslist:
{
"browserslist": [
"chrome 64",
"edge 79",
"firefox 67",
"opera 51",
"safari 12"
]
}
Полифилы (Polyfills)
Мы автоматически добавляем широко используемые полифилы, включая:
- fetch() — Заменяет:
whatwg-fetch
иunfetch
. - URL — Заменяет: пакет
url
(Node.js API). - Object.assign() — Заменяет:
object-assign
,object.assign
иcore-js/object/assign
.
Если какие-либо из ваших зависимостей включают эти полифилы, они будут автоматически исключены из production-сборки, чтобы избежать дублирования.
Кроме того, для уменьшения размера бандла Next.js загружает эти полифилы только для браузеров, которые в них нуждаются. Большинство пользователей в глобальном масштабе не будут загружать эти полифилы.
Пользовательские полифилы
Если ваш код или внешние npm-зависимости требуют функций, не поддерживаемых целевыми браузерами (например, IE 11), вам нужно добавить полифилы самостоятельно.
В этом случае следует добавить импорт конкретного полифила на верхнем уровне в вашем Кастомном <App>
или в отдельном компоненте.
Возможности 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 (часть stage 3 proposal)
- и многое другое!
Полифилы на стороне сервера
В дополнение к fetch()
на клиенте, Next.js добавляет полифил для fetch()
в окружении Node.js, где он ещё не доступен. Используется реализация undici
, та же самая, что использует сам Node.js. Вы можете использовать fetch()
в серверном коде (например, в getStaticProps
/getServerSideProps
) без необходимости подключать полифилы вроде isomorphic-unfetch
или node-fetch
.
Возможности TypeScript
Next.js имеет встроенную поддержку TypeScript. Подробнее здесь.
Настройка конфигурации Babel (для продвинутых)
Вы можете настроить конфигурацию Babel. Подробнее здесь.