К основному содержанию
скилл CX Codex

turbopack-bundler — скилл для Claude Code: что делает и установка

Скилл с правилами настройки бандлера Turbopack в Next.js. Помогает настроить пути, кастомные загрузчики и оптимизировать кэширование сборки.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add Mindrally/skills --skill turbopack-bundler -a claude-code
Открыть на GitHub

Что делает turbopack-bundler

Скилл обучает ИИ-агента архитектуре Turbopack — инкрементального сборщика на Rust, встроенного в Next.js. Он задаёт правила для структуры проекта на App Router, паттерна Atomic Design и разделения кода с помощью next/dynamic.

Внутри собраны готовые шаблоны конфигураций: настройка блока turbopack в next.config.js под загрузчики SVG или MDX, параметры resolveAlias и параметры tsconfig.json со стратегией moduleResolution: "bundler". Скилл также подсказывает правила разбиения утилит на небольшие модули для сохранения функционального кэша Turbo engine.

Для запуска режима разработки требуется Next.js 13.4 или выше с ключом next dev --turbo. Встроенная поддержка CSS Modules, PostCSS и TypeScript работает сразу, поэтому добавлять в проект babel-loader или css-loader не нужно.

Какие задачи решает

  • настроить кастомные загрузчики SVG и MDX в next.config.js
  • задать алиасы путей в tsconfig.json и конфигурации сборщика
  • структурировать код для эффективного кэширования в Turbo engine
  • настроить динамический импорт тяжёлых компонентов через next/dynamic

Примеры запросов агенту

  • Добавь в next.config.js правила для обработки векторных файлов через @svgr/webpack.
  • Настрой пути к компонентам и режим moduleResolution в файле tsconfig.json.
  • Покажи пример динамического импорта тяжёлого компонента без серверного рендеринга.

Как установить turbopack-bundler

1Через Skills CLI (Vercel)

npx skills add Mindrally/skills --skill turbopack-bundler -a claude-code

2Вручную: положить файлы

~/.claude/skills/turbopack-bundler/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/turbopack-bundler/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о turbopack-bundler

Как установить turbopack-bundler в Claude Code?

Выполните команду npx skills add Mindrally/skills --skill turbopack-bundler -a claude-code. Также можно разместить файл вручную по пути ~/.claude/skills/turbopack-bundler/SKILL.md.

Что делает скилл turbopack-bundler?

Он передаёт ассистенту инструкции по интеграции бандлера Turbopack в Next.js. Агент учится правильной настройке next.config.js, путей импорта и кэшированию сборок.

Нужны ли отдельные загрузчики для стилей и TypeScript?

Нет, Turbopack поддерживает TypeScript, JSX, CSS Modules и PostCSS из коробки. Дополнительно подключать css-loader или babel-loader не требуется.

Исходный текст

SKILL.md · Apache-2.0
---
name: turbopack-bundler
description: Best practices and guidelines for Turbopack, the Rust-powered incremental bundler for Next.js and modern web development
metadata:
  maintainer: Mindrally
  source: https://github.com/Mindrally/skills
---

# Turbopack Bundler

You are an expert in Turbopack, the incremental bundler optimized for JavaScript and TypeScript, written in Rust and built into Next.js. Follow these guidelines when working with Turbopack.

## Core Principles

- Turbopack is designed for incremental computation and caching
- Function-level caching through the Turbo engine
- Native Rust performance for fast builds
- Built-in support for TypeScript and JSX
- Optimized for Next.js integration
- Abstracts away webpack configurations

## Project Structure

```
project/
├── src/
│   ├── app/              # Next.js App Router
│   │   ├── layout.tsx
│   │   ├── page.tsx
│   │   └── globals.css
│   ├── components/       # Shared components
│   └── lib/              # Utility functions
├── public/               # Static assets
├── next.config.js        # Next.js configuration
├── tsconfig.json         # TypeScript config
└── package.json
```

## Enabling Turbopack

### Development Mode

```bash
# Next.js 13.4+
next dev --turbo

# Or in package.json
{
  "scripts": {
    "dev": "next dev --turbo"
  }
}
```

### Next.js Configuration

```javascript
// next.config.js
module.exports = {
  experimental: {
    turbo: {
      // Turbopack-specific configuration
    }
  }
};
```

## Configuration Options

### Custom Loaders

```javascript
// next.config.js
module.exports = {
  turbopack: {
    rules: {
      '*.svg': {
        loaders: ['@svgr/webpack'],
        as: '*.js'
      },
      '*.mdx': {
        loaders: ['@mdx-js/loader']
      }
    }
  }
};
```

### Resolve Aliases

```javascript
// next.config.js
module.exports = {
  turbopack: {
    resolveAlias: {
      '@components': './src/components',
      '@lib': './src/lib',
      '@styles': './src/styles'
    }
  }
};
```

### Resolve Extensions

```javascript
// next.config.js
module.exports = {
  turbopack: {
    resolveExtensions: ['.tsx', '.ts', '.jsx', '.js', '.json']
  }
};
```

## Built-in Support

Turbopack has built-in support for:

- **TypeScript**: No configuration needed
- **JSX/TSX**: Automatic transformation
- **CSS**: Native CSS support
- **CSS Modules**: `.module.css` files
- **PostCSS**: Automatic processing
- **Static Assets**: Images, fonts, etc.

No loaders needed for:
- `css-loader`
- `postcss-loader`
- `babel-loader` (for `@babel/preset-env`)

## TypeScript Configuration

### Recommended tsconfig.json

```json
{
  "compilerOptions": {
    "target": "ES2017",
    "lib": ["dom", "dom.iterable", "esnext"],
    "allowJs": true,
    "skipLibCheck": true,
    "strict": true,
    "noEmit": true,
    "esModuleInterop": true,
    "module": "esnext",
    "moduleResolution": "bundler",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "jsx": "preserve",
    "incremental": true,
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]
    }
  }
}
```

### Path Aliases

```json
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@components/*": ["src/components/*"],
      "@lib/*": ["src/lib/*"],
      "@styles/*": ["src/styles/*"]
    }
  }
}
```

## Code Organization

### Atomic Design Pattern

```
src/
├── components/
│   ├── atoms/          # Basic building blocks
│   │   ├── Button/
│   │   └── Input/
│   ├── molecules/      # Combinations of atoms
│   │   ├── SearchBar/
│   │   └── NavItem/
│   ├── organisms/      # Complex components
│   │   ├── Header/
│   │   └── Footer/
│   └── templates/      # Page layouts
│       └── MainLayout/
├── app/
│   └── page.tsx
└── lib/
    └── utils.ts
```

### Component Structure

```
Button/
├── Button.tsx
├── Button.module.css
├── Button.test.tsx
└── index.ts
```

## Code Splitting

### Dynamic Imports

```typescript
import dynamic from 'next/dynamic';

const HeavyComponent = dynamic(() => import('@/components/HeavyComponent'), {
  loading: () => <p>Loading...</p>,
  ssr: false // Disable server-side rendering if needed
});
```

### Route-Based Splitting

Next.js automatically code-splits by route in the `app/` directory.

### Manual Splitting

```typescript
// Split large components
const ChartComponent = dynamic(() => import('./ChartComponent'));
const EditorComponent = dynamic(() => import('./EditorComponent'));
```

## Caching Strategy

### Turbo Engine Caching

- Function-level caching for incremental builds
- Only recomputes what changed
- Persistent cache across builds

### Optimizing for Cache

```typescript
// Keep modules focused and small
// Changes to one module don't invalidate others

// Good: Separate concerns
export function formatDate(date: Date) { /* ... */ }
export function formatCurrency(amount: number) { /* ... */ }

// Avoid: Large utility files that change frequently
```

## Performance Best Practices

### Module Organization

- Keep modules small and focused
- Minimize cross-module dependencies
- Use barrel exports sparingly

### Import Optimization

```typescript
// Prefer specific imports
import { Button } from '@/components/Button';

// Avoid importing entire libraries
// Bad: import _ from 'lodash';
// Good: import debounce from 'lodash/debounce';
```

### Static Analysis

```typescript
// Use const assertions for better tree-shaking
const ROUTES = {
  home: '/',
  about: '/about',
  contact: '/contact'
} as const;
```

## CSS Handling

### CSS Modules

```typescript
import styles from './Component.module.css';

function Component() {
  return <div className={styles.container}>Content</div>;
}
```

### Global CSS

```typescript
// app/layout.tsx
import './globals.css';
```

### Tailwind CSS

```javascript
// tailwind.config.js
module.exports = {
  content: [
    './src/**/*.{js,ts,jsx,tsx,mdx}',
    './app/**/*.{js,ts,jsx,tsx,mdx}'
  ]
};
```

## Environment Variables

### Next.js Environment Variables

```bash
# .env.local
NEXT_PUBLIC_API_URL=https://api.example.com
DATABASE_URL=postgresql://...
```

```typescript
// Client-side (must have NEXT_PUBLIC_ prefix)
const apiUrl = process.env.NEXT_PUBLIC_API_URL;

// Server-side only
const dbUrl = process.env.DATABASE_URL;
```

## Testing

### Test Organization

```
src/
├── components/
│   └── Button/
│       ├── Button.tsx
│       └── Button.test.tsx    # Co-located test
└── __tests__/                 # Integration tests
    └── pages/
        └── home.test.tsx
```

### Testing Best Practices

- Write unit tests for utility functions
- Use React Testing Library for components
- End-to-end tests with Cypress or Playwright
- Keep tests close to the code they test

## Common Pitfalls

### Configuration Issues

```json
// Ensure correct tsconfig.json paths
{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./src/*"]  // Must match actual structure
    }
  }
}
```

### Caching Problems

```bash
# Clear Turbopack cache if issues arise
rm -rf .next
```

### Compatibility

- Check dependency compatibility with Turbopack
- Some webpack plugins may not work directly
- Use Next.js configuration instead of webpack config

## Migration from Webpack

### What Changes

- No direct webpack.config.js
- Use next.config.js for customization
- Some loaders need Turbopack equivalents

### What Stays the Same

- Import syntax
- Dynamic imports
- CSS Modules
- TypeScript support

## Best Practices Summary

### Do

- Use Next.js configurations for customization
- Leverage built-in TypeScript and JSX support
- Organize code for incremental computation
- Use dynamic imports for code splitting
- Keep modules focused and small

### Avoid

- Direct webpack configurations
- Large barrel files that change frequently
- Fighting against Next.js conventions
- Ignoring TypeScript path configuration

## Debugging

### Verbose Logging

```bash
NEXT_DEBUG_TURBOPACK=1 next dev --turbo
```

### Build Analysis

```bash
# Check build output
ANALYZE=true next build
```

### Common Issues

1. **Slow initial build**: Normal, subsequent builds are fast
2. **Module not found**: Check path aliases in tsconfig.json
3. **CSS not loading**: Ensure proper import syntax
4. **Type errors**: Run `tsc --noEmit` separately

© Mindrally · Apache-2.0 · Mindrally/skills

Похожие скиллы

Всё по теме «Фронтенд и UI» →
frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. 1 025 790установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. CX Codex +1 678 700установок prototype Matt Pocock Создаёт временный прототип, чтобы проверить логику, модель состояния или вид интерфейса до работы над основным кодом. 986 201установок hyperframes heygen-com Скилл задаёт агенту правила рендера HTML-кода в видео через HyperFrames. Помогает собирать проморолики, эксплейнеры и титры прямо в коде проекта. CX Codex +1 1 200 000установок hyperframes-cli heygen-com Управляет проектами HyperFrames через терминал: собирает таймлайн, проверяет контраст кадров, запускает предпросмотр и рендерит видео локально или в облаке. CX Codex +1 1 300 000установок webapp-testing официальный anthropics Скилл запускает проверки локальных веб-приложений через Playwright: помогает отлаживать UI, делать скриншоты и смотреть логи браузера. 186 758установок

Из того же набора236

julia Задаёт агенту стиль кода на Julia: мультиметоды, типы, тесты и оптимизацию производительности. Пригодится, если пишете научные расчёты или численные библиотеки. CX Codex +1 687установок clerk-authentication Правила подключения Clerk в Next.js: middleware, хуки, защита серверных действий и маршрутов API. Пригодится, когда проект уже на Clerk и нужен порядок в проверках доступа. CX Codex +1 683установок nx Скилл задаёт агенту правила работы с Nx: структура apps и libs, теги, границы модулей, генераторы и кэш. Пригодится, если проект уже собран на Nx. CX Codex +1 682установок langchain-development Задаёт агенту правила разработки на LangChain и LangGraph: композиция цепочек, агенты, память, RAG. Пригодится, когда проект на Python растёт и код надо держать в одном стиле. CX Codex +1 681установок azure Задаёт правила разработки в Azure: шаблоны Bicep, конвейеры Azure Pipelines и безопасность кластеров AKS. CX Codex +1 675установок apollo-graphql Скилл задаёт агенту правила работы с Apollo Client: запросы, мутации, фрагменты, кэш и оптимистичные обновления в React-проектах на GraphQL. CX Codex +1 677установок monorepo-tamagui Задаёт агенту правила разработки кросс-платформенного монорепо на Tamagui, Turbo, Next.js, Expo и Supabase. Пригодится, когда в одном репозитории живут веб и мобильное приложение. CX Codex +1 677установок swiftui-development Набор правил для ИИ-агента: как строить SwiftUI-приложения на MVVM, управлять состоянием и работать с конкурентностью Swift 6. CX Codex +1 676установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой