Настройка бандлера Turbopack для веб-проекта

Наша компания занимается разработкой, поддержкой и обслуживанием сайтов любой сложности. От простых одностраничных сайтов до масштабных кластерных систем построенных на микро сервисах. Опыт разработчиков подтвержден сертификатами от вендоров.

Разработка и обслуживание любых видов сайтов:

Информационные сайты или веб-приложения
Сайты визитки, landing page, корпоративные сайты, онлайн каталоги, квиз, промо-сайты, блоги, новостные ресурсы, информационные порталы, форумы, агрегаторы
Сайты или веб-приложения электронной коммерции
Интернет-магазины, B2B-порталы, маркетплейсы, онлайн-обменники, кэшбэк-сайты, биржи, дропшиппинг-платформы, парсеры товаров
Веб-приложения для управления бизнес-процессами
CRM-системы, ERP-системы, корпоративные порталы, системы управления производством, парсеры информации
Сайты или веб-приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, конструкторы сайтов, порталы предоставления электронных услуг, видеохостинги, тематические порталы

Это лишь некоторые из технических типов сайтов, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента

Предлагаемые услуги
Показано 1 из 1 услугВсе 2065 услуг
Настройка бандлера Turbopack для веб-проекта
Средняя
от 4 часов до 2 рабочих дней
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    874
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    851

Настройка бандлера Turbopack для веб-проекта

Turbopack — сборщик от Vercel, написанный на Rust, разработанный как преемник Webpack внутри Next.js. По состоянию на 2025 год он стабилен для dev-режима в Next.js 13+ и постепенно набирает поддержку production-сборки. Прямое использование вне Next.js пока ограничено.

Текущий статус

Turbopack не существует как standalone-инструмент с открытым API конфигурации — в отличие от Webpack, Vite или esbuild. Он интегрирован в Next.js через флаг --turbopack и конфигурируется через next.config.ts. Это сознательное решение команды: сначала стабилизировать внутри одного фреймворка, потом расширять поддержку.

На что рассчитывать:

  • dev-режим — стабилен с Next.js 14+, заметный прирост скорости при больших кодовых базах
  • production-сборка — в active development, поддержка появилась в Next.js 15 в экспериментальном режиме
  • standalone использование — пока недоступно публично

Включение в Next.js

# Next.js 14+
next dev --turbopack

# Или через package.json
{
  "scripts": {
    "dev": "next dev --turbopack",
    "build": "next build"  // production пока без флага
  }
}

Конфигурация через next.config.ts

// next.config.ts
import type { NextConfig } from 'next';

const config: NextConfig = {
  experimental: {
    turbo: {
      // Кастомные загрузчики (аналог webpack loaders)
      rules: {
        '*.svg': {
          loaders: ['@svgr/webpack'],
          as: '*.js',
        },
        '*.mdx': {
          loaders: ['@mdx-js/loader'],
          as: '*.js',
        },
      },

      // Алиасы путей
      resolveAlias: {
        '@components': './src/components',
        '@utils': './src/utils',
        // Замена модулей (аналог webpack resolve.alias)
        'lodash': 'lodash-es',
      },

      // Расширения файлов в порядке приоритета
      resolveExtensions: ['.tsx', '.ts', '.jsx', '.js', '.json'],
    },
  },
};

export default config;

Совместимость с webpack loaders

Turbopack поддерживает ограниченный набор webpack-совместимых загрузчиков. Полностью совместимы:

rules: {
  '*.mdx': { loaders: ['@mdx-js/loader'], as: '*.js' },
  '*.svg': { loaders: ['@svgr/webpack'], as: '*.js' },
  '*.yaml': { loaders: ['yaml-loader'], as: '*.js' },
  '*.graphql': { loaders: ['graphql-tag/loader'], as: '*.js' },
}

Не работают или работают частично: большинство CSS-loaders (Next.js обрабатывает CSS своими средствами), загрузчики с сложными side-effects, загрузчики требующие webpack compilation hooks.

Переменные окружения и define

// В next.config.ts Turbopack учитывает стандартные Next.js env
// .env.local, .env.development, .env.production

// Для кастомных define нет прямого API в Turbopack —
// используйте стандартный механизм Next.js:
const config: NextConfig = {
  env: {
    CUSTOM_KEY: process.env.CUSTOM_KEY,
  },
};

Отладка производительности

Turbopack имеет встроенный трейсинг:

NEXT_TURBOPACK_TRACING=1 next dev --turbopack

Генерирует .next/trace файл, который можно открыть в Chrome DevTools Performance tab через chrome://tracing.

Полезные метрики которые стоит отслеживать после включения Turbopack:

# Время первого запуска dev-сервера
time next dev --turbopack

# Время HMR после изменения файла — смотреть в терминале:
# "compiled client and server successfully in Xms"

Ограничения относительно Webpack

На текущий момент в Next.js с Turbopack недоступны:

  • webpack() функция в next.config.ts игнорируется
  • Некоторые плагины Babel (Turbopack использует SWC)
  • next/bundle-analyzer — замена: @next/bundle-analyzer не работает, используйте turbo-pack-analyze или встроенный tracing
  • Часть community-плагинов которые патчат webpack конфиг напрямую
// Это не будет работать с --turbopack:
const config: NextConfig = {
  webpack(config) {
    config.plugins.push(new MyPlugin());  // игнорируется
    return config;
  },
};

Миграция с Webpack-кастомизаций

Если проект использует нестандартные webpack-конфигурации, перед включением Turbopack стоит провести аудит:

# Проверить что используется в webpack конфиге
grep -r "webpack(" next.config.*
grep -r "new webpack\." next.config.*

Для каждой кастомизации нужно найти аналог в Turbopack API или временно оставить webpack для production:

// Гибридный подход: Turbopack для dev, Webpack для build
{
  "scripts": {
    "dev": "next dev --turbopack",
    "build": "next build"  // webpack
  }
}

Сроки

Включение --turbopack в существующем Next.js проекте без кастомных webpack-лоадеров: 1–2 часа (включая тестирование и проверку совместимости). Миграция проекта с нестандартными webpack-конфигурациями: 1–3 дня в зависимости от сложности кастомизаций.