Что это такое
esbuild — сборщик и минификатор для веб-проектов. Он работает с JavaScript, CSS, TypeScript и JSX, умеет собирать ESM и CommonJS и предоставляет интерфейсы для командной строки, JavaScript и Go.
Главная цель проекта — резко ускорить сборку. В публичном описании esbuild прямо формулирует проблему: современные инструменты веб-сборки могут быть на порядок медленнее, чем способны быть.
Автор проекта Evan Wallace сделал esbuild не как еще одну конфигурационную надстройку, а как быстрый низкоуровневый инструмент, который можно использовать напрямую или как часть более крупной системы.
Что внутри
esbuild написан на Go и выполняет большую часть работы сам: парсит исходники, связывает модули, преобразует TypeScript и JSX, минифицирует код и стили.
Проект не пытается повторить все возможности старых сборщиков. Он закрывает самые частые операции очень быстро, а более сложные сценарии делегирует внешним расширениям или инструментам поверх esbuild.
Такая архитектура объясняет его популярность: даже если финальная сборка идет через другой инструмент, esbuild часто используют для быстрого преобразования, предварительной сборки или разработки.
Как используют
В маленьком проекте esbuild может быть основным сборщиком: команда указывает входной файл, включает объединение модулей и получает готовый файл для браузера.
В больших системах esbuild часто работает внутри других инструментов. Он ускоряет обработку TypeScript, JSX и зависимостей, пока верхний слой занимается маршрутизацией, серверным рендерингом или более сложной конфигурацией.
Ограничение в том, что esbuild сознательно не закрывает все крайние случаи. Если проект зависит от редких преобразований, сложной экосистемы расширений или особого поведения старого сборщика, миграцию нужно проверять внимательно.
Минимальная сборка
Команда показывает базовый сценарий: взять входной файл, объединить зависимости, минифицировать результат и положить его в папку публичных файлов.
Сильные стороны и ограничения
Сильная сторона esbuild — скорость без обязательного кеша. Это хорошо чувствуется в разработке, тестах и сервисах, где сборка запускается часто.
Слабая сторона — намеренная узость некоторых решений. Проект не стремится быть бесконечно расширяемой платформой, поэтому необычные задачи иногда проще решать другим инструментом.
esbuild подойдет веб-приложениям, библиотекам, пакетам и инфраструктурным задачам, где важны скорость и понятный результат. Если нужен максимально полный контроль над каждым шагом сборки, стоит заранее проверить совместимость.
Пример
Одна команда сборки
Пример показывает типичное использование: входной файл, объединение модулей, минификация и указание выходного файла.
npx esbuild src/app.tsx \
--bundle \
--minify \
--sourcemap \
--outfile=public/app.js