# turbopack

Правило для Cursor задаёт, как писать код под Turbopack в Next.js 16+: структура src/, TypeScript, App Router, явные директивы кэша.

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

## Что делает

Turbopack — это Rust-бандлер, который в Next.js 16+ идёт по умолчанию. Он собирает проект инкрементально: кэш работает на уровне функций, бандлинг ленивый, граф сборки общий для сервера и клиента. Правило объясняет, какую структуру проекта такая схема любит.

Внутри — набор требований к организации кода. Исходники держите в `src/` с папками `app/`, `components/`, `lib/`, `services/`, `styles/`, `types/`. Пишите на TypeScript: SWC в Turbopack обрабатывает TS и JSX. Компоненты делайте мелкими и с одной задачей — тогда кэш на уровне функций и Fast Refresh работают лучше. Для новых страниц правило советует App Router и серверные компоненты, а не Pages Router с `getServerSideProps`.

Отдельный блок — явные директивы. `export const runtime = 'edge'` для Edge Functions, `export const dynamic = 'force-static'` для полной статики, `export const revalidate = 60` для ISR, `"use cache"` для кэша компонента. Тяжёлые библиотеки подключайте через `next/dynamic` или динамический `import()`, иначе они попадут в начальный бандл. Файл ложится в `.cursor/rules/turbopack.mdc` и применяется к файлам по маске `**/*.{js,jsx}`.

## Установка

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

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

### Claude Code

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

### Codex

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

### GitHub Copilot

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

### Windsurf (Devin Desktop)

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

### Cline

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

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

## Когда брать
- разложить исходники Next.js по папкам внутри `src/`
- перевести страницы с Pages Router на App Router
- вынести тяжёлую библиотеку в динамический импорт
- проставить явные директивы кэша и рантайма
- разбить крупный клиентский компонент на мелкие

## Примеры запросов агенту
- Проверь структуру проекта под Turbopack и предложи, что перенести в `src/`
- Этот компонент слишком большой — разбей его на серверную и клиентскую части
- Подключи `heavy-chart-library` через `next/dynamic`, чтобы он не попал в начальный бандл

## Похожие
- [winui3](https://affpapa.org/nevibecode/rules/winui3.md) — правило · ★ 40451
- [vue](https://affpapa.org/nevibecode/rules/vue.md) — правило · ★ 40451
- [tanstack-start-shadcn-tailwind](https://affpapa.org/nevibecode/rules/tanstack-start-shadcn-tailwind.md) — правило · ★ 40451
- [tailwind-v4-vite](https://affpapa.org/nevibecode/rules/tailwind-v4-vite.md) — правило · ★ 40451
- [svelte](https://affpapa.org/nevibecode/rules/svelte.md) — правило · ★ 40451
- [power-bi-custom-visuals-development](https://affpapa.org/nevibecode/rules/power-bi-custom-visuals-development.md) — правило · ★ 40451

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

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

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