В системе сборки esbuild логирование играет ключевую роль при
отладке, мониторинге и интеграции в CI/CD-процессы. Опция
logLevel определяет, какие сообщения будут выводиться во
время выполнения сборки: от подробных диагностических данных до полного
подавления вывода.
Эта настройка влияет только на стандартный вывод esbuild и не
затрагивает пользовательские обработчики (onStart,
onEnd) или внешние системы логирования.
Опция задаётся в объекте конфигурации:
esbuild.build({
entryPoints: ['src/index.js'],
bundle: true,
outfile: 'dist/bundle.js',
logLevel: 'info'
});
Также применима в CLI:
esbuild src/index.js --bundle --outfile=dist/bundle.js --log-level=info
logLevelverboseНаиболее подробный уровень логирования. Используется при глубокой отладке сборки и диагностики внутренних процессов.
Содержит:
Характеристика уровня:
Пример использования:
esbuild.build({
entryPoints: ['src/index.js'],
bundle: true,
outfile: 'dist/bundle.js',
logLevel: 'verbose'
});
debugУровень, ориентированный на разработку и отладку поведения сборки.
Содержит:
Отличие от verbose заключается в меньшем количестве
внутренних технических деталей.
Пример:
esbuild.build({
entryPoints: ['src/app.js'],
bundle: true,
outfile: 'dist/app.js',
logLevel: 'debug'
});
infoСтандартный режим вывода, используемый по умолчанию.
Содержит:
Особенности:
Пример:
esbuild.build({
entryPoints: ['src/main.js'],
bundle: true,
outfile: 'dist/main.js',
logLevel: 'info'
});
warningРежим, при котором выводятся только предупреждения и ошибки, без информационных сообщений о ходе сборки.
Содержит:
Не содержит:
Используется для минимизации шума при стабильной сборке.
Пример:
esbuild.build({
entryPoints: ['src/index.js'],
bundle: true,
outfile: 'dist/index.js',
logLevel: 'warning'
});
errorВыводятся только ошибки, без предупреждений и информационных сообщений.
Содержит:
Особенности:
Пример:
esbuild.build({
entryPoints: ['src/index.js'],
bundle: true,
outfile: 'dist/index.js',
logLevel: 'error'
});
silentПолное отключение встроенного логирования esbuild.
Не выводится:
Ошибки при этом не исчезают — они возвращаются через API (reject promise или callback error), но не печатаются в консоль.
Применяется в случаях:
Пример:
esbuild.build({
entryPoints: ['src/index.js'],
bundle: true,
outfile: 'dist/index.js',
logLevel: 'silent'
});
Уровни логирования образуют иерархию:
verbose → debug → info → warning → error → silent
Каждый следующий уровень уменьшает количество выводимой информации.
verbose включает всёdebug исключает часть внутренних деталейinfo ограничивается базовыми сообщениямиwarning оставляет только предупреждения и ошибкиerror оставляет только ошибкиsilent отключает вывод полностьюВажно различать логирование и обработку ошибок:
logLevel не отключает ошибки выполненияsilent не делает сборку «безошибочной», он лишь
скрывает выводПример:
try {
await esbuild.build({
entryPoints: ['src/index.js'],
bundle: true,
outfile: 'dist/index.js',
logLevel: 'silent'
});
} catch (e) {
console.error('Сборка завершилась с ошибкой');
}
esbuild src/index.js --bundle --outfile=dist.js --log-level=debug
import * as esbuild from 'esbuild';
esbuild.build({
entryPoints: ['src/index.js'],
bundle: true,
outfile: 'dist/index.js',
logLevel: 'info'
});
Используются verbose и debug:
Используется info:
Используются warning или error:
Используется silent:
Предупреждения esbuild не всегда означают ошибки, но могут сигнализировать о потенциальных проблемах:
При logLevel: warning и выше они становятся ключевым
источником диагностической информации, при error —
полностью скрываются, если не переходят в критическую ошибку.
Уровень логирования влияет на производительность косвенно:
verbose может замедлять вывод из-за объёма логовsilent минимизирует I/O операцииinfo и warning находятся в среднем
диапазоне нагрузкиВ крупных проектах с множеством модулей снижение уровня логирования уменьшает нагрузку на консольный вывод и ускоряет CI-пайплайны за счёт меньшего объёма stdout.
logLevel не указан, используется
infologLevel часто используется совместно с:
minify — уменьшение итогового кода, при котором
логирование может быть менее важнымsourcemap — диагностика ошибок через исходный кодdefine — управление окружением, влияющим на
предупрежденияplugins — источники дополнительных логов при
debug и verboseВ связке эти параметры формируют общий профиль поведения сборки и диагностики.