Turbopack
Turbopack (бета) — это инкрементальный сборщик, оптимизированный для JavaScript и TypeScript, написанный на Rust и встроенный в Next.js.
Использование
Turbopack можно использовать в Next.js как в директории pages
, так и в app
для ускорения локальной разработки. Чтобы включить Turbopack, используйте флаг --turbo
при запуске сервера разработки Next.js.
{
"scripts": {
"dev": "next dev --turbo",
"build": "next build",
"start": "next start",
"lint": "next lint"
}
}
Поддерживаемые возможности
Turbopack в Next.js не требует настройки для большинства пользователей и может быть расширен для более сложных сценариев. Чтобы узнать больше о текущих поддерживаемых возможностях Turbopack, ознакомьтесь с Справочником API.
Неподдерживаемые возможности
Turbopack в настоящее время поддерживает только next dev
и не поддерживает next build
. Мы работаем над поддержкой сборки по мере приближения к стабильной версии.
Следующие возможности в настоящее время не поддерживаются:
- Конфигурация
webpack()
вnext.config.js
- Turbopack заменяет Webpack, поэтому конфигурация Webpack не поддерживается.
- Для настройки Turbopack см. документацию.
- Поддерживается подмножество загрузчиков Webpack в Turbopack.
- Babel (
.babelrc
)- Turbopack использует компилятор SWC для всех трансформаций и оптимизаций. Это означает, что Babel не включён по умолчанию.
- Если у вас есть файл
.babelrc
, он может больше не потребоваться, так как Next.js включает общие плагины Babel в виде трансформаций SWC, которые можно включить. Подробнее об этом можно прочитать в документации компилятора. - Если вам всё ещё нужно использовать Babel после проверки, что ваш конкретный случай не покрыт, вы можете воспользоваться поддержкой пользовательских загрузчиков Webpack в Turbopack для включения
babel-loader
.
- Автоматическое создание корневого макета в App Router.
- Это поведение в настоящее время не поддерживается, так как изменяет входные файлы. Вместо этого будет показана ошибка с предложением вручную добавить корневой макет в нужное место.
@next/font
(устаревшая поддержка шрифтов).@next/font
устарел в пользуnext/font
.next/font
полностью поддерживается в Turbopack.
new Worker('file', import.meta.url)
.- Мы планируем реализовать это в будущем.
- Трансформации Relay
- Мы планируем реализовать это в будущем.
experimental.nextScriptWorkers
- Мы планируем реализовать это в будущем.
- AMP.
- В настоящее время мы не планируем поддерживать AMP в Next.js с Turbopack.
- Yarn PnP
- В настоящее время мы не планируем поддерживать Yarn PnP в Next.js с Turbopack.
experimental.urlImports
- В настоящее время мы не планируем поддерживать
experimental.urlImports
в Next.js с Turbopack.
- В настоящее время мы не планируем поддерживать
Генерация файлов трассировки
Файлы трассировки позволяют команде Next.js исследовать и улучшать показатели производительности и использования памяти. Чтобы сгенерировать файл трассировки, добавьте NEXT_TURBOPACK_TRACING=1
к команде next dev --turbo
, это создаст файл .next/trace.log
.
При сообщении о проблемах, связанных с производительностью Turbopack и использованием памяти, пожалуйста, приложите файл трассировки к вашему issue на GitHub.