# esbuild

Правило для Cursor, которое задаёт агенту порядок работы с esbuild: один конфиг вместо россыпи флагов в package.json. Пригодится, когда сборка уже есть, но её никто не может поддерживать.

- правило · `type=rule` · Cursor · ★ 3579
- Автор: sanjeed5
- Лицензия: CC0-1.0 · policy=mirror · начало файла — в конце страницы
- Исходник: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/esbuild.mdc
- Обновлён: 2026-05-19
- HTML: https://affpapa.org/nevibecode/rules/esbuild

## Что делает

Правило описывает девять приёмов настройки esbuild и подкрепляет каждый парой примеров: как не надо и как надо. Агент получает готовые шаблоны для `esbuild.config.mjs` и перестаёт выдумывать опции заново.

Внутри — централизация конфигурации в отдельном `.mjs`-файле, `target` под нужные браузеры и Node.js, инкрементальная сборка через `esbuild.context()` и `watch`, code splitting с `format: 'esm'` и хешами в именах чанков, список `external` для библиотек, алиасы путей из `tsconfig.json`. Отдельные разделы — про продакшен (`minify`, внешние sourcemap, `define` для `process.env.NODE_ENV`) и про тесты: сборка не должна мешать тестовому окружению, поэтому под тесты предлагается свой конфиг, например `esbuild.config.test.mjs`.

Правило подключается к Cursor через файл `.cursor/rules/esbuild.mdc` с glob `**/*.{js,jsx}`. Обратите внимание на этот glob: TypeScript-файлы под него не попадают, хотя половина советов внутри — про `tsconfig.json` и обработку `.ts`. Если у вас проект на TypeScript, правило стоит поправить сразу после установки.

## Установка

### Cursor (родная платформа)

**Вручную: положить файлы**
- Файл: `.cursor/rules/esbuild.mdc` — Во frontmatter: description, globs, alwaysApply

### Claude Code

**Вручную: положить файлы**
- Файл: `.claude/rules/esbuild.md` — Поле paths во frontmatter ограничивает файлы: globs из источника → paths

### Codex

**AGENTS.md**
- Codex читает AGENTS.md: вставьте текст правила туда

### GitHub Copilot

**Вручную: положить файлы**
- Файл: `.github/instructions/esbuild.instructions.md` — Поле applyTo задаёт, к каким файлам применять: globs из источника → applyTo

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/rules/esbuild.md`

### Cline

**Вручную: положить файлы**
- Файл: `.clinerules/esbuild.md`

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/sanjeed5/awesome-cursor-rules-mdc/tree/HEAD/rules-mdc/esbuild.mdc

## Когда брать
- собрать один конфиг сборки вместо флагов, разбросанных по `package.json`
- указать `target` и не транспилировать лишнее
- включить пересборку при изменении файлов
- разделить бандл на чанки с хешами в именах
- вынести React и другие общие зависимости в `external` для библиотеки

## Примеры запросов агенту
- Перепиши сборку esbuild в отдельный `esbuild.config.mjs`, убери флаги из `package.json`
- Добавь в конфиг esbuild code splitting с `format: 'esm'` и хешами в именах чанков
- Настрой алиасы путей из `tsconfig.json` и подключи их к esbuild

## Похожие
- [rollup-bundler](https://affpapa.org/nevibecode/skills/rollup-bundler.md) — скилл · 657 установок
- [bun-development](https://affpapa.org/nevibecode/skills/bun-development.md) — скилл · 2800 установок
- [bun-macros](https://affpapa.org/nevibecode/skills/bun-macros.md) — скилл · 385 установок
- [tree-shaking](https://affpapa.org/nevibecode/skills/tree-shaking.md) — скилл · 1400 установок
- [migrate](https://affpapa.org/nevibecode/skills/toss-migrate.md) — скилл · 313 установок
- [tsdown](https://affpapa.org/nevibecode/skills/tsdown.md) — скилл · 1500 установок

Из того же набора: [sanjeed5/awesome-cursor-rules-mdc](https://affpapa.org/nevibecode/by/sanjeed5/awesome-cursor-rules-mdc.md) — 69 карточек

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
