Вспомни, как обычно выглядит аудит клиентской производительности в крупном веб-приложении: разработчик запускает плагин @next/bundle-analyzer, открывает в браузере гигантскую карту Webpack Treemap и начинает медитировать над разноцветными прямоугольниками. Ты вглядываешься в названия модулей, пытаясь визуально угадать, почему тяжелая библиотека форматирования дат или парсер markdown протекли в клиентский чанк критического пути рендеринга. Это трудоемкий, рутинный процесс, который отнимает часы инженерного времени и регулярно упускает сложные цепочки косвенных импортов.
В свежих релизах Next.js команда фреймворка предложила радикально иной подход: перестать рисовать цветные картинки для человека и передать анализ бандла специализированным автономным ИИ-агентам.
От интерактивных карт к графу модулей в JSON
Архитектурный фундамент этой идеи заложен в бандлере Turbopack, написанном на Rust. Turbopack строит детальный, гранулярный граф зависимостей и чанков приложения. Начиная с Next.js 16.1, в экосистему встроен анализатор, а в публикации Next.js Blog разработчики представили команду next analyze export.
Вместо генерации тяжелого HTML-файла эта команда формирует компактный и структурированный JSON-снимок:
- Полная карта модулей с размерами в несжатом и gzip-виде;
- Четкие границы между серверными компонентами (RSC) и клиентскими деревьями (
'use client'); - Маршруты динамической загрузки (
import()иlazy); - Направленные цепочки импортов от точки входа страницы до каждого конкретного утилитарного файла.
Для большой языковой модели (LLM) такой JSON-граф — идеальный материал. Агент не разглядывает пиксели на экране, а применяет алгоритмы теории графов: находит кратчайшие пути импортов и вычисляет минимальный разрез графа (minimum cut) для изоляции тяжелых библиотек.
Агентный навык next-bundle-optimizer на практике
Чтобы подключить к аудиту ИИ-ассистентов (Cursor, Claude Code, Windsurf или Vercel Agent), разработчики опубликовали открытый навык в каталоге Vercel Skills. Навык обучает агента понимать специфику Next.js: находить случайные статические импорты, изолировать серверный код и безопасно выносить редко используемые диалоги в динамические чанки.
Взгляни на базовую конфигурацию в файле next.config.js:
/** @type {import('next').NextConfig} */
const nextConfig = {
experimental: {
// Включаем гранулярный сбор телеметрии Turbopack
turbo: {
rules: {},
},
},
// Настройки сжатия и оптимизации продакшен-бандла
productionBrowserSourceMaps: false,
};
module.exports = nextConfig;
А вот как выглядит практический сценарий работы через терминал:
# 1. Добавляем навык оптимизатора бандла в рабочее окружение
npx skills add vercel/next.js --skill next-bundle-optimizer
# 2. Экспортируем снимок графа модулей в машиночитаемый JSON
npx next build --turbo && npx next analyze export --output=./bundle-snapshot.json
# 3. Запускаем команду автоматического аудита и исправления
# ИИ-агент модифицирует код, заменяя жадные импорты на dynamic()
/next-bundle-optimizer fix --target=./bundle-snapshot.json
В нашем исследовании о том, как в Next.js 16.4 модель Cache Components стала стандартом и ускоряет SSR, мы говорили о борьбе за каждый килобайт на клиенте. В реальных тестах на боевых проектах vercel.com и платформе v0 связка Turbopack и ИИ-агентов срезала почти 2 мегабайта клиентского JavaScript: жадная загрузка редактора кода была заменена на отложенную (минус 150 КБ на страницу), а служебные модули наблюдаемости были вычищены из общих утилит разбора URL.
Запускайте экспорт графа Turbopack на каждом пул-реквесте в GitHub Actions. Сравнение двух JSON-файлов по diff позволяет мгновенно блокировать случайное добавление тяжелых зависимостей еще до попадания ветки в основную кодовую базу.
Вместо утомительного ручного поиска «виновников» разработчик получает готовый пул-реквест от агента с точечной заменой статического импорта на dynamic() и замерами сэкономленных килобайтов.
