---
title: "Конфигурация"
description: "Repomix можно настроить с помощью файла конфигурации или параметров командной строки. Файл конфигурации позволяет настраивать различные аспекты обработки и вывода вашей кодовой базы."
type: skill
canonical_url: https://claudary.paisolsolutions.com/skills/configuration-84
source: "Claudary"
difficulty: intermediate
author: "Claude Code Knowledge Pack"
date: 2026-07-10T11:18:54.367Z
license: CC-BY-4.0
attribution: "Конфигурация — Claudary (https://claudary.paisolsolutions.com/skills/configuration-84)"
---

# Конфигурация
Repomix можно настроить с помощью файла конфигурации или параметров командной строки. Файл конфигурации позволяет настраивать различные аспекты обработки и вывода вашей кодовой базы.

## Overview

# Конфигурация

Repomix можно настроить с помощью файла конфигурации или параметров командной строки. Файл конфигурации позволяет настраивать различные аспекты обработки и вывода вашей кодовой базы.

## Форматы файла конфигурации

Repomix поддерживает несколько форматов файлов конфигурации для гибкости и удобства использования.

Repomix автоматически ищет файлы конфигурации в следующем порядке приоритета:

1. **TypeScript** (`repomix.config.ts`, `repomix.config.mts`, `repomix.config.cts`)
2. **JavaScript/ES Module** (`repomix.config.js`, `repomix.config.mjs`, `repomix.config.cjs`)
3. **JSON** (`repomix.config.json5`, `repomix.config.jsonc`, `repomix.config.json`)

### Конфигурация JSON

Создайте файл конфигурации в директории вашего проекта:
```bash
repomix --init
```

Это создаст файл `repomix.config.json` с настройками по умолчанию. Вы также можете создать глобальный файл конфигурации, который будет использоваться как запасной, когда локальная конфигурация не найдена:

```bash
repomix --init --global
```

### Конфигурация TypeScript

Файлы конфигурации TypeScript предоставляют лучший опыт разработки с полной проверкой типов и поддержкой IDE.

**Установка:**

Чтобы использовать конфигурацию TypeScript или JavaScript с `defineConfig`, вам нужно установить Repomix как dev-зависимость:

```bash
npm install -D repomix
```

**Пример:**

```typescript
// repomix.config.ts
import { defineConfig } from 'repomix';

export default defineConfig({
  output: {
    filePath: 'output.xml',
    style: 'xml',
    removeComments: true,
  },
  ignore: {
    customPatterns: ['**/node_modules/**', '**/dist/**'],
  },
});
```

**Преимущества:**
- ✅ Полная проверка типов TypeScript в вашей IDE
- ✅ Отличное автодополнение и IntelliSense
- ✅ Использование динамических значений (временные метки, переменные окружения и т.д.)

**Пример с динамическими значениями:**

```typescript
// repomix.config.ts
import { defineConfig } from 'repomix';

// Генерация имени файла на основе временной метки
const timestamp = new Date().toISOString().slice(0, 19).replace(/[:.]/g, '-');

export default defineConfig({
  output: {
    filePath: `output-${timestamp}.xml`,
    style: 'xml',
  },
});
```

### Конфигурация JavaScript

Файлы конфигурации JavaScript работают так же, как TypeScript, поддерживая `defineConfig` и динамические значения.

## Параметры конфигурации

| Параметр                         | Описание                                                                                                                      | По умолчанию           |
|----------------------------------|-------------------------------------------------------------------------------------------------------------------------------|------------------------|
| `input.maxFileSize`              | Максимальный размер файла в байтах для обработки. Файлы больше этого значения будут пропущены. Полезно для исключения больших бинарных или data-файлов | `50000000`            |
| `output.filePath`                | Имя выходного файла. Поддерживает форматы XML, Markdown и простой текст                                                        | `"repomix-output.xml"` |
| `output.style`                   | Стиль вывода (`xml`, `markdown`, `json`, `plain`). Каждый формат имеет свои преимущества для разных ИИ-инструментов            | `"xml"`                |
| `output.parsableStyle`           | Экранировать вывод согласно выбранной схеме стиля. Улучшает парсинг, но может увеличить количество токенов                     | `false`                |
| `output.compress`                | Выполнять интеллектуальное извлечение кода с помощью Tree-sitter для уменьшения количества токенов при сохранении структуры    | `false`                |
| `output.headerText`              | Пользовательский текст для включения в заголовок файла. Полезно для предоставления контекста или инструкций для ИИ-инструментов | `null`                 |
| `output.instructionFilePath`     | Путь к файлу с детальными пользовательскими инструкциями для обработки ИИ                                                      | `null`                 |
| `output.fileSummary`             | Включать ли раздел сводки в начале с количеством файлов, размерами и другими метриками                                         | `true`                 |
| `output.directoryStructure`      | Включать ли структуру директорий в вывод. Помогает ИИ понять организацию проекта                                               | `true`                 |
| `output.files`                   | Включать ли содержимое файлов в вывод. Установите false для включения только структуры и метаданных                            | `true`                 |
| `output.removeComments`          | Удалять ли комментарии из поддерживаемых типов файлов. Может уменьшить шум и количество токенов                                | `false`                |
| `output.removeEmptyLines`        | Удалять ли пустые строки из вывода для уменьшения количества токенов                                                           | `false`                |
| `output.showLineNumbers`         | Добавлять ли номера строк к каждой строке. Полезно для ссылок на конкретные части кода                                         | `false`                |
| `output.truncateBase64`          | Обрезать ли длинные строки base64-данных (например, изображения) для уменьшения количества токенов                             | `false`                |
| `output.copyToClipboard`         | Копировать ли вывод в системный буфер обмена помимо сохранения файла                                                           | `false`                |
| `output.splitOutput`             | Разделить вывод на несколько нумерованных файлов по максимальному размеру на часть (напр., `1000000` для ~1МБ). CLI принимает читаемые размеры, такие как `500kb` или `2mb`. Сохраняет каждый файл в пределах лимита и предотвращает разделение исходных файлов между частями | Не задано |
| `output.topFilesLength`          | Количество топ-файлов для отображения в сводке. Если установлено 0, сводка не будет отображаться                               | `5`                    |
| `output.includeEmptyDirectories` | Включать ли пустые директории в структуру репозитория                                                                          | `false`                |
| `output.includeFullDirectoryStructure` | При использовании паттернов `include` отображать ли полное дерево директорий (с учётом паттернов игнорирования), обрабатывая только включённые файлы. Предоставляет полный контекст репозитория для анализа ИИ | `false`                |
| `output.git.sortByChanges`       | Сортировать ли файлы по количеству изменений в git. Файлы с большим количеством изменений появляются внизу                      | `true`                 |
| `output.git.sortByChangesMaxCommits` | Максимальное количество коммитов для анализа изменений git. Ограничивает глубину истории для производительности             | `100`                  |
| `output.git.includeDiffs`        | Включать ли git diff в вывод. Показывает изменения рабочего дерева и staged отдельно                                           | `false`                |
| `output.git.includeLogs`         | Включать ли git-логи в вывод. Показывает историю коммитов с датами, сообщениями и путями файлов                                | `false`                |
| `output.git.includeLogsCount`    | Количество git-коммитов для включения в вывод                                                                                  | `50`                   |
| `include`                        | Паттерны файлов для включения с использованием [glob-паттернов](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax) | `[]`                   |
| `ignore.useGitignore`            | Использовать ли паттерны из файла `.gitignore` проекта                                                                         | `true`                 |
| `ignore.useDotIgnore`            | Использовать ли паттерны из файла `.ignore` проекта                                                                            | `true`                 |
| `ignore.useDefaultPatterns`      | Использовать ли паттерны игнорирования по умолчанию (node_modules, .git и т.д.)                                                | `true`                 |
| `ignore.customPatterns`          | Дополнительные паттерны для игнорирования с использованием [glob-паттернов](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax) | `[]`                   |
| `security.enableSecurityCheck`   | Выполнять ли проверки безопасности с помощью Secretlint для обнаружения конфиденциальной информации                            | `true`                 |
| `tokenCount.encoding`            | Кодировка подсчёта токенов, совместимая с OpenAI (например, `o200k_base` для GPT-4o, `cl100k_base` для GPT-4/3.5). Использует [gpt-tokenizer](https://github.com/nicolo-ribaudo/gpt-tokenizer). | `"o200k_base"`         |

Файл конфигурации поддерживает синтаксис [JSON5](https://json5.org/), который позволяет:
- Комментарии (как однострочные, так и многострочные)
- Завершающие запятые в объектах и массивах
- Имена свойств без кавычек
- Более гибкий синтаксис строк

## Валидация схемы

Вы можете включить валидацию схемы для вашего файла конфигурации, добавив свойство `$schema`:

```json
{
  "$schema": "https://repomix.com/schemas/latest/schema.json",
  "output": {
    "filePath": "repomix-output.xml",
    "style": "xml"
  }
}
```

Это обеспечивает автодополнение и валидацию в редакторах, поддерживающих JSON-схему.

## Пример файла конфигурации

Вот пример полного файла конфигурации (`repomix.config.json`):

```json
{
  "$schema": "https://repomix.com/schemas/latest/schema.json",
  "input": {
    "maxFileSize": 50000000
  },
  "output": {
    "filePath": "repomix-output.xml",
    "style": "xml",
    "parsableStyle": false,
    "compress": false,
    "headerText": "Пользовательская информация заголовка для упакованного файла.",
    "fileSummary": true,
    "directoryStructure": true,
    "files": true,
    "removeComments": false,
    "removeEmptyLines": false,
    "topFilesLength": 5,
    "showLineNumbers": false,
    "truncateBase64": false,
    "copyToClipboard": false,
    "includeEmptyDirectories": false,
    "git": {
      "sortByChanges": true,
      "sortByChangesMaxCommits": 100,
      "includeDiffs": false,
      "includeLogs": false,
      "includeLogsCount": 50
    }
  },
  "include": ["**/*"],
  "ignore": {
    "useGitignore": true,
    "useDefaultPatterns": true,
    // Паттерны также можно указать в .repomixignore
    "customPatterns": [
      "additional-folder",
      "**/*.log"
    ],
  },
  "security": {
    "enableSecurityCheck": true
  },
  "tokenCount": {
    "encoding": "o200k_base"
  }
}
```

## Расположение файлов конфигурации

Repomix ищет файлы конфигурации в следующем порядке:
1. Локальный файл конфигурации в текущей директории (порядок приоритета: TS > JS > JSON)
   - TypeScript: `repomix.config.ts`, `repomix.config.mts`, `repomix.config.cts`
   - JavaScript: `repomix.config.js`, `repomix.config.mjs`, `repomix.config.cjs`
   - JSON: `repomix.config.json5`, `repomix.config.jsonc`, `repomix.config.json`
2. Глобальный файл конфигурации (порядок приоритета: TS > JS > JSON)
   - Windows:
     - TypeScript: `%LOCALAPPDATA%\\Repomix\\repomix.config.ts`, `.mts`, `.cts`
     - JavaScript: `%LOCALAPPDATA%\\Repomix\\repomix.config.js`, `.mjs`, `.cjs`
     - JSON: `%LOCALAPPDATA%\\Repomix\\repomix.config.json5`, `.jsonc`, `.json`
   - macOS/Linux:
     - TypeScript: `~/.config/repomix/repomix.config.ts`, `.mts`, `.cts`
     - JavaScript: `~/.config/repomix/repomix.config.js`, `.mjs`, `.cjs`
     - JSON: `~/.config/repomix/repomix.config.json5`, `.jsonc`, `.json`

Параметры командной строки имеют приоритет над настройками файла конфигурации.

## Паттерны включения

Repomix поддерживает указание файлов для включения с помощью [glob-паттернов](https://github.com/mrmlnc/fast-glob?tab=readme-ov-file#pattern-syntax). Это позволяет более гибко и мощно выбирать файлы:

- Используйте `**/*.js` для включения всех JavaScript-файлов в любой директории
- Используйте `src/**/*` для включения всех файлов в директории `src` и её поддиректориях
- Комбинируйте несколько паттернов, например `["src/**/*.js", "**/*.md"]` для включения JavaScript-файлов в `src` и всех Markdown-файлов

Вы можете указать паттерны включения в файле конфигурации:

```json
{
  "include": ["src/**/*", "tests/**/*.test.js"]
}
```

Или используйте параметр командной строки `--include` для одноразовой фильтрации.

## Паттерны игнорирования

Repomix предлагает несколько методов для установки паттернов игнорирования для исключения конкретных файлов или директорий в процессе упаковки:

- **.gitignore**: По умолчанию используются паттерны из файлов `.gitignore` вашего проекта и `.git/info/exclude`. Это поведение можно контролировать с помощью настройки `ignore.useGitignore` или параметра CLI `--no-gitignore`.
- **.ignore**: Вы можете использовать файл `.ignore` в корне проекта, следуя тому же формату, что и `.gitignore`. Этот файл учитывается такими инструментами, как ripgrep и silver searcher, что уменьшает необходимость поддерживать несколько файлов игнорирования. Это поведение можно контролировать с помощью настройки `ignore.useDotIgnore` или параметра CLI `--no-dot-ignore`.
- **Паттерны по умолчанию**: Repomix включает список по умолчанию часто исключаемых файлов и директорий (например, node_modules, .git, бинарные файлы). Эту функцию можно контролировать с помощью настройки `ignore.useDefaultPatterns` или параметра CLI `--no-default-patterns`. Подробнее см. [defaultIgnore.ts](https://github.com/yamadashy/repomix/blob/main/src/config/defaultIgnore.ts).
- **.repomixignore**: Вы можете создать файл `.repomixignore` в корне проекта для определения паттернов игнорирования, специфичных для Repomix. Этот файл следует тому же формату, что и `.gitignore`.
- **Пользовательские паттерны**: Дополнительные паттерны игнорирования можно указать с помощью параметра `ignore.customPatterns` в файле конфигурации. Вы можете переопределить эту настройку с помощью параметра командной строки `-i, --ignore`.

**Порядок приоритета** (от высшего к низшему):

1. Пользовательские паттерны (`ignore.customPatterns`)
2. Файлы игнорирования (`.repomixignore`, `.ignore`, `.gitignore` и `.git/info/exclude`):
   - Во вложенных директориях файлы в более глубоких директориях имеют более высокий приоритет
   - В одной директории эти файлы объединяются без определённого порядка
3. Паттерны по умолчанию (если `ignore.useDefaultPatterns` равно true и `--no-default-patterns` не используется)

Этот подход позволяет гибко настраивать исключение файлов в соответствии с потребностями вашего проекта. Это помогает оптимизировать размер сгенерированного упакованного файла, обеспечивая исключение файлов, чувствительных к безопасности, и больших бинарных файлов, предотвращая утечку конфиденц

---

Source: [Claudary](https://claudary.paisolsolutions.com/skills/configuration-84) · https://claudary.paisolsolutions.com
