entryPoints Массив входных файлов или точек приложения. Может принимать строки или объект для именованных выходов.
entryPoints: ["src/index.js"]entryPoints: { app: "src/index.js", admin: "src/admin.js" }Используется для формирования одного или нескольких бандлов.
stdin Позволяет передавать код напрямую через стандартный ввод вместо файловой системы.
Основные параметры:
contents — строка с кодомresolveDir — базовая директория для резолва
импортовsourcefile — виртуальное имя файлаloader — тип загрузчикаoutfile Путь к единственному выходному файлу. Используется только при одной точке входа и без code splitting.
outdir Каталог для вывода файлов при нескольких entry points или code splitting.
outbase Базовая директория, которая сохраняется в структуре выходных путей. Позволяет сохранять относительные пути.
write Булевый флаг:
true — записывать файлы на дискfalse — возвращать результат в памяти (in-memory
output)allowOverwrite Разрешает перезапись существующих файлов в выходной директории.
publicPath Базовый публичный URL для ресурсов (особенно полезно для CSS, ассетов и динамических импортов).
bundle Включает или отключает бандлинг.
true — объединение модулейfalse — только трансформацияsplitting Включает code splitting для ESM формата.
Требования:
format: "esm"bundle: trueformat Формат вывода:
iife — самовызывающийся скриптcjs — CommonJSesm — ES Modulesplatform Целевая платформа:
browsernodeneutralВлияет на встроенные замены и поведение резолва.
target Уровень поддержки Jav * aScript:
Примеры:
es2015es2020esnextОпределяет, какие синтаксические конструкции будут транспилироваться.
minify Сокращение кода:
minify: true включает все виды минификации:
minifyWhitespaceminifyIdentifiersminifySyntaxminifyWhitespace Удаляет пробелы, переносы строк и лишнее форматирование.
minifyIdentifiers Сокращает имена переменных и функций.
minifySyntax Оптимизирует синтаксические конструкции (упрощение выражений, удаление лишнего кода).
treeShaking Автоматическое удаление неиспользуемого
кода. В Esbuild включено по умолчанию при bundle: true.
keepNames Сохраняет оригинальные имена функций и классов в результате минификации.
sourcemap Управляет генерацией карт исходного кода:
false — отключеноtrue — inline или отдельный файл (зависит от
окружения)"inline" — встроенная карта"external" — отдельный файл .map"both" — и inline, и externalsourcesContent Встраивает исходный код в sourcemap для упрощения отладки.
loader Определяет способ обработки файлов по расширению.
Примеры:
".js": "js"".ts": "ts"".json": "json"".css": "css"".png": "file"".txt": "text"Позволяет расширять поддержку нестандартных типов ресурсов.
resolveExtensions Список расширений, используемых при резолве импортов.
Пример:
resolveExtensions: [".ts", ".tsx", ".js", ".jsx"]
mainFields Определяет приоритет полей package.json при резолве зависимостей:
Пример:
mainFields: ["module", "main"]
conditions Условия резолва в package exports:
Пример:
conditions: ["import", "browser", "default"]
external Массив модулей, которые не должны попадать в бандл.
Примеры:
"react""lodash/*"inject Позволяет автоматически вставлять импорты в каждый модуль.
Пример:
inject: ["./shims/process.js"]
define Статическая замена переменных на этапе сборки.
Пример:
define: {
"process.env.NODE_ENV": '"production"',
__VERSION__: '"1.0.0"'
}
jsx Режим обработки JSX:
transform — стандартный JSX трансформpreserve — оставить JSX как естьautomatic — новый JSX runtimejsxFactory Функция создания элементов JSX (устаревший режим).
jsxFragment Фрагмент JSX (например
React.Fragment).
jsxImportSource Источник runtime для automatic JSX
(например react).
tsconfig Путь к файлу TypeScript конфигурации. Используется для синхронизации настроек компиляции.
plugins Массив плагинов Esbuild.
Плагин представляет собой объект с:
namesetup(build)Позволяет:
metafile Включает генерацию метафайла сборки.
Содержит:
Используется для анализа бандла и оптимизации.
logLevel Уровень логирования:
silenterrorwarninginfodebuglogLimit Ограничивает количество выводимых сообщений.
watch Включает наблюдение за файлами и автоматическую пересборку.
Пример:
watch: {
onRebuild(error, result) {}
}
serve Запускает встроенный HTTP-сервер.
Параметры:
porthostservedirincremental Включает инкрементальную сборку, позволяющую переиспользовать кэш между билдами.
absWorkingDir Абсолютная рабочая директория для резолва путей.
charset Управление кодировкой вывода:
utf8 (по умолчанию)ascii (для минимизации размера)color Включает цветной вывод логов:
truefalseautobanner Строка или объект, добавляемый в начало каждого выходного файла.
footer Строка или объект, добавляемый в конец каждого выходного файла.
legalComments Управление комментариями лицензий:
none — удалятьinline — оставлять в кодеeof — переносить в конец файлаlinked — выносить в отдельный файлnodePaths Дополнительные пути для резолва модулей Node.js.
supported Флаги включения/отключения отдельных возможностей трансформации в зависимости от окружения.
format-specific behavior summary (взаимосвязи опций)
Некоторые опции работают только в комбинации:
splitting требует format: esmoutdir обязателен при множественных entry pointsoutfile несовместим с code splittingwatch и incremental усиливают друг друга,
но решают разные задачиdefine и inject влияют на AST до
оптимизации и минификацииbehavioral pipeline build (логика применения опций)
entryPoints,
resolveExtensions, mainFields,
conditions)loader, plugins)jsx, tsconfig)define, inject)bundle, external,
splitting)treeShaking, minify*)format, target,
charset)banner, footer,
legalComments)sourcemap,
sourcesContent)write,
outdir, outfile)