12 KiB
Configuración
Repomix puede configurarse mediante un archivo de configuración (repomix.config.json) o opciones de línea de comandos. El archivo de configuración le permite personalizar varios aspectos de cómo se procesa y genera la salida de su base de código.
Inicio rápido
Cree un archivo de configuración en el directorio de su proyecto:
repomix --init
Esto creará un archivo repomix.config.json con la configuración predeterminada. También puede crear un archivo de configuración global que se utilizará como respaldo cuando no se encuentre una configuración local:
repomix --init --global
Validación de esquema
Puede habilitar la validación de esquema para su archivo de configuración agregando la propiedad $schema:
{
"$schema": "https://repomix.com/schemas/latest/schema.json",
"output": {
"filePath": "repomix-output.md",
"style": "markdown"
}
}
Esto proporciona autocompletado y validación en editores que admiten esquemas JSON.
Ubicaciones de los archivos de configuración
Repomix busca los archivos de configuración en el siguiente orden:
- Archivo de configuración local (
repomix.config.json) en el directorio actual - Archivo de configuración global:
- Windows:
%LOCALAPPDATA%\Repomix\repomix.config.json - macOS/Linux:
~/.config/repomix/repomix.config.json
- Windows:
Las opciones de línea de comandos tienen prioridad sobre la configuración del archivo.
Opciones de configuración
| Opción | Descripción | Predeterminado |
|---|---|---|
input.maxFileSize |
Tamaño máximo de archivo en bytes para procesar. Los archivos más grandes serán ignorados. Útil para excluir archivos binarios grandes o archivos de datos | 50000000 |
output.filePath |
Nombre del archivo de salida. Admite formatos XML, Markdown y texto plano | "repomix-output.xml" |
output.style |
Estilo de salida (xml, markdown, plain). Cada formato tiene sus propias ventajas para diferentes herramientas de IA |
"xml" |
output.parsableStyle |
Indica si se debe escapar la salida según el esquema de estilo elegido. Permite un mejor análisis pero puede aumentar el recuento de tokens | false |
output.compress |
Indica si se debe realizar una extracción inteligente de código usando Tree-sitter para reducir el recuento de tokens mientras se preserva la estructura | false |
output.headerText |
Texto personalizado para incluir en el encabezado del archivo. Útil para proporcionar contexto o instrucciones a las herramientas de IA | null |
output.instructionFilePath |
Ruta a un archivo que contiene instrucciones personalizadas detalladas para el procesamiento de IA | null |
output.fileSummary |
Indica si se debe incluir una sección de resumen al principio mostrando recuentos de archivos, tamaños y otras métricas | true |
output.directoryStructure |
Indica si se debe incluir la estructura de directorios en la salida. Ayuda a la IA a entender la organización del proyecto | true |
output.files |
Indica si se debe incluir el contenido de los archivos en la salida. Establecer en false para incluir solo estructura y metadatos | true |
output.removeComments |
Indica si se deben eliminar los comentarios de los tipos de archivos soportados. Puede reducir el ruido y el recuento de tokens | false |
output.removeEmptyLines |
Indica si se deben eliminar las líneas vacías de la salida para reducir el recuento de tokens | false |
output.showLineNumbers |
Indica si se deben agregar números de línea a cada línea. Útil para referenciar partes específicas del código | false |
output.copyToClipboard |
Indica si se debe copiar la salida al portapapeles del sistema además de guardar el archivo | false |
output.topFilesLength |
Número de archivos principales para mostrar en el resumen. Si se establece en 0, no se mostrará ningún resumen | 5 |
output.includeEmptyDirectories |
Indica si se deben incluir directorios vacíos en la estructura del repositorio | false |
output.git.sortByChanges |
Indica si se deben ordenar los archivos por número de cambios git. Los archivos con más cambios aparecen al final | true |
output.git.sortByChangesMaxCommits |
Número máximo de commits para analizar al contar cambios git. Limita la profundidad del historial por rendimiento | 100 |
output.git.includeDiffs |
Indica si se deben incluir las diferencias git en la salida. Muestra por separado los cambios del árbol de trabajo y los cambios preparados | false |
include |
Patrones de archivos a incluir usando patrones glob | [] |
ignore.useGitignore |
Indica si se deben usar los patrones del archivo .gitignore del proyecto |
true |
ignore.useDefaultPatterns |
Indica si se deben usar los patrones de ignorar predeterminados (node_modules, .git, etc.) | true |
ignore.customPatterns |
Patrones adicionales para ignorar usando patrones glob | [] |
security.enableSecurityCheck |
Indica si se deben realizar comprobaciones de seguridad usando Secretlint para detectar información sensible | true |
tokenCount.encoding |
Codificación de recuento de tokens utilizada por el tokenizador tiktoken de OpenAI. Use o200k_base para GPT-4o, cl100k_base para GPT-4/3.5. Ver tiktoken model.py para más detalles. |
"o200k_base" |
El archivo de configuración admite la sintaxis JSON5, que permite:
- Comentarios (tanto de una línea como multilínea)
- Comas finales en objetos y arrays
- Nombres de propiedades sin comillas
- Sintaxis de cadena más flexible
Ejemplo de archivo de configuración
Aquí hay un ejemplo de un archivo de configuración completo (repomix.config.json):
{
"$schema": "https://repomix.com/schemas/latest/schema.json",
"input": {
"maxFileSize": 50000000
},
"output": {
"filePath": "repomix-output.xml",
"style": "xml",
"parsableStyle": false,
"compress": false,
"headerText": "Información de encabezado personalizada para el archivo empaquetado.",
"fileSummary": true,
"directoryStructure": true,
"files": true,
"removeComments": false,
"removeEmptyLines": false,
"topFilesLength": 5,
"showLineNumbers": false,
"copyToClipboard": false,
"includeEmptyDirectories": false,
"git": {
"sortByChanges": true,
"sortByChangesMaxCommits": 100,
"includeDiffs": false
}
},
"include": ["**/*"],
"ignore": {
"useGitignore": true,
"useDefaultPatterns": true,
// Los patrones también se pueden especificar en .repomixignore
"customPatterns": [
"additional-folder",
"**/*.log"
],
},
"security": {
"enableSecurityCheck": true
},
"tokenCount": {
"encoding": "o200k_base"
}
}
Patrones de ignorar
Repomix proporciona múltiples formas de especificar qué archivos deben ignorarse. Los patrones se procesan en el siguiente orden de prioridad:
- Opciones de CLI (
--ignore) - Archivo
.repomixignoreen el directorio del proyecto .gitignorey.git/info/exclude(siignore.useGitignorees verdadero)- Patrones predeterminados (si
ignore.useDefaultPatternses verdadero)
Ejemplo de .repomixignore:
# Directorios de caché
.cache/
tmp/
# Salidas de compilación
dist/
build/
# Registros
*.log
Patrones de ignorar predeterminados
Cuando ignore.useDefaultPatterns es verdadero, Repomix ignora automáticamente patrones comunes:
node_modules/**
.git/**
coverage/**
dist/**
Para la lista completa, vea defaultIgnore.ts
Características avanzadas
Compresión de código
La función de compresión de código, habilitada con output.compress: true, utiliza Tree-sitter para extraer inteligentemente estructuras de código esenciales mientras elimina detalles de implementación. Esto ayuda a reducir el recuento de tokens mientras mantiene información estructural importante.
Beneficios principales:
- Reduce significativamente el recuento de tokens
- Preserva las firmas de clases y funciones
- Mantiene importaciones y exportaciones
- Conserva definiciones de tipos e interfaces
- Elimina cuerpos de funciones y detalles de implementación
Para más detalles y ejemplos, consulte la Guía de compresión de código.
Integración con Git
La configuración output.git proporciona potentes características relacionadas con Git:
sortByChanges: Cuando es verdadero, los archivos se ordenan por número de cambios Git (commits que modificaron el archivo). Los archivos con más cambios aparecen al final de la salida. Esto ayuda a priorizar los archivos más activamente desarrollados. Predeterminado:truesortByChangesMaxCommits: El número máximo de commits para analizar al contar cambios de archivos. Predeterminado:100includeDiffs: Cuando es verdadero, incluye las diferencias Git en la salida (incluye por separado los cambios del árbol de trabajo y los cambios preparados). Esto permite al lector ver los cambios pendientes en el repositorio. Predeterminado:false
Ejemplo de configuración:
{
"output": {
"git": {
"sortByChanges": true,
"sortByChangesMaxCommits": 100,
"includeDiffs": true
}
}
}
Comprobaciones de seguridad
Cuando security.enableSecurityCheck está habilitado, Repomix utiliza Secretlint para detectar información sensible en su base de código antes de incluirla en la salida. Esto ayuda a prevenir la exposición accidental de:
- Claves de API
- Tokens de acceso
- Claves privadas
- Contraseñas
- Otras credenciales sensibles
Eliminación de comentarios
Cuando output.removeComments se establece en true, los comentarios se eliminan de los tipos de archivos soportados para reducir el tamaño de salida y enfocarse en el contenido esencial del código. Esto puede ser particularmente útil cuando:
- Está trabajando con código muy documentado
- Está tratando de reducir el recuento de tokens
- Se está enfocando en la estructura y lógica del código
Para los lenguajes soportados y ejemplos detallados, consulte la Guía de eliminación de comentarios.