Параметр logLimit в esbuild управляет количеством
сообщений логирования, которые будут выведены для каждой категории
предупреждений или ошибок до того, как последующие сообщения начнут
подавляться. Это механизм ограничения «шумных» логов, возникающих при
массовых однотипных проблемах в проекте.
При сборке проекта esbuild может генерировать большое количество предупреждений одного типа, например:
Без ограничения лог может быстро стать нечитаемым.
logLimit решает эту проблему, ограничивая число выводимых
сообщений на одну категорию.
Основная идея:
Когда количество сообщений превышает установленный лимит:
logLimit сообщений;Это позволяет сохранить информативность, не перегружая терминал или CI-логи.
logLimit задаётся как числовая опция в объекте
конфигурации сборки:
import * as esbuild from "esbuild";
esbuild.build({
entryPoints: ["src/index.js"],
bundle: true,
outfile: "dist/bundle.js",
logLimit: 10
});
logLimit принимает:
Ограничение применяется не глобально ко всем логам сразу, а по типу сообщения. Это означает:
Пример:
Параметр logLimit работает совместно с
logLevel, который определяет:
info,
warning, error, silent);logLimit регулирует объём уже
разрешённых сообщений.Логика взаимодействия:
logLevel фильтрует типы сообщений;logLimit ограничивает количество оставшихся сообщений
по категориям.В автоматических сборках часто возникает большое количество однотипных предупреждений из-за больших монорепозиториев.
Без logLimit лог может занимать тысячи строк.
С logLimit:
При активной разработке esbuild --watch может
многократно пересобирать проект и повторно генерировать одни и те же
предупреждения.
logLimit предотвращает:
esbuild.build({
entryPoints: ["src/index.js"],
bundle: true,
outfile: "dist/app.js",
logLimit: 5
});
Если один модуль вызывает 20 одинаковых предупреждений:
Плагины esbuild часто генерируют логи через API контекста сборки. При интенсивной работе плагинов:
logLimit предотвращает лавинообразный вывод одинаковых
сообщений.Выбор значения зависит от характера проекта:
Если logLimit не указан, используется встроенное
значение по умолчанию, рассчитанное на баланс между информативностью и
шумом логов в типичных сценариях сборки.