Cambiar tema

Guía completa de .cursorignore en Cursor: 3 estrategias clave para optimizar la indexación en proyectos grandes

Easton editorial illustration: task-routing switchboard

Actualización 2026-06-08: revisado con la documentación oficial de Cursor (junio de 2026). Cursor ya respeta tu .gitignore más una lista de exclusión por defecto integrada (node_modules, lockfiles, artefactos de build y binarios/medios ya quedan fuera de la indexación en su mayoría), así que .cursorignore sirve sobre todo como bloqueo de acceso duro más exclusiones extra; .cursorindexingignore solo bloquea la indexación (con @ aún puedes leer el archivo). Además, el archivo único .cursorrules en la raíz ahora es legacy (se ignora en modo Agent) — pon las reglas de proyecto en .cursor/rules/*.mdc.

El martes por la tarde abrí en Cursor el monorepo de la empresa, con más de 500.000 líneas de código. El icono de Syncing en la esquina inferior derecha empezó a girar. Pasaron 5 minutos y seguía girando. Pasaron 10 minutos y aún indexaba. Me fui a tomar un café y, al volver, seguía ahí, girando con calma.

Lo peor llegó después. Cuando por fin terminó la indexación, pedí a la IA que me ayudara a optimizar un componente React y me sugirió: «Puedes modificar directamente el archivo node_modules/react-dom/cjs/react-dom.development.js». Me quedé mirando la pantalla en silencio tres segundos: la IA había confundido el código de una dependencia con el de mi proyecto.

En ese momento empecé a dudar de si Cursor servía para proyectos grandes. Hasta que descubrí un archivo de configuración llamado .cursorignore y todo cambió. El tiempo de indexación bajó de 12 minutos a 3, y la IA dejó de recomendar cambios absurdos dentro de node_modules.

Si tú también has sufrido indexación lenta o respuestas imprecisas de la IA en Cursor, este artículo te ayudará a resolverlo. Comparto 3 estrategias de optimización con efecto inmediato y una plantilla de configuración que puedes copiar y usar al momento.

Por qué la indexación de Cursor es tan lenta

Primero, hablemos del mecanismo de indexación de Cursor. Cada vez que abres un proyecto, Cursor convierte los archivos de código en vectores de embedding: en términos simples, transforma el código en una representación numérica que la IA puede entender. Ese proceso recorre cada archivo, calcula vectores y los almacena. Cuantos más archivos tenga el proyecto, más lento será.

La pregunta es: ¿realmente necesitas que la IA entienda todos los archivos de tu proyecto?

La mayoría de los proyectos tienen varios tipos de archivos que ocupan mucho espacio, son numerosos y aportan poco a la programación asistida por IA:

node_modules: el agujero negro de dependencias
En un proyecto frontend de tamaño medio, node_modules puede contener decenas de miles de archivos. En un proyecto React con unas decenas de dependencias, el número de archivos supera fácilmente los diez mil. Cursor indexa todo ese código de terceros en cada apertura, pero ¿de verdad necesitas que la IA entienda la implementación interna de lodash?

dist/build: basura de compilación
Son código comprimido y ofuscado generado por herramientas de build. Pedirle a la IA que indexe un archivo JavaScript comprimido en una sola línea es como pedirle que lea jeroglíficos: no tiene sentido.

.git: el peso del historial
Un repositorio Git guarda todo el historial del proyecto. En proyectos grandes, la carpeta .git puede pesar cientos de MB o incluso más de 1 GB. Indexar ese historial es perder el tiempo.

Recursos estáticos grandes
Vídeos, imágenes, fuentes… la IA no puede leerlos, así que indexarlos no aporta nada.

Hice una prueba: un proyecto Next.js de 100.000 líneas, con node_modules y el directorio de build .next completos, tardaba 8 minutos en indexarse. Tras configurar .cursorignore para excluir esos directorios, el tiempo bajó a 2 minutos. Cuatro veces más rápido.

Lo más importante es la precisión. Cuando el contexto de la IA se llena de código de node_modules, confunde qué es tuyo y qué pertenece a una dependencia. El resultado: te sugiere modificar paquetes instalados o trata APIs de librerías de terceros como si fueran funciones escritas por ti.

Guía completa de configuración de .cursorignore

La buena noticia es que la sintaxis de .cursorignore es exactamente la misma que la de .gitignore. Si ya sabes escribir .gitignore, este archivo te resultará muy familiar.

Resumen de sintaxis básica

Crea un archivo .cursorignore en la raíz del proyecto (fíjate en el punto inicial) y escribe según estas reglas:

# Esto es un comentario; empieza con #

# Excluir un archivo concreto
config.json

# Excluir un directorio completo (termina con barra)
node_modules/
dist/

# Coincidencia con comodines
*.log          # todos los archivos de registro
**/*.test.js   # archivos de prueba en cualquier nivel

# Regla de negación (volver a incluir)
!important.log # excluye todos los .log, pero conserva este

Plantilla lista para usar

He preparado una configuración base válida para la mayoría de proyectos. Puedes copiarla directamente en tu .cursorignore:

# Directorios de dependencias
node_modules/
.pnp/
.pnp.js
vendor/
packages/

# Artefactos de compilación
dist/
build/
out/
.next/
.nuxt/
.cache/
.vite/
.turbo/

# Pruebas y cobertura
coverage/
.nyc_output/
*.spec.js
*.test.js
__tests__/

# Registros y archivos temporales
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.DS_Store
*.swp
*.swo
*~

# Configuración de entorno (por seguridad)
.env
.env.local
.env.*.local
credentials.json
*.key
*.pem

# Control de versiones
.git/
.svn/
.hg/

# Configuración del IDE (opcional)
.vscode/
.idea/
*.sublime-*

# Archivos de recursos grandes (ajusta según necesidad)
*.mp4
*.mov
*.avi
*.zip
*.tar.gz
*.pdf
public/videos/

Esta configuración cubre el 90 % de los escenarios habituales. Después de guardarla, abre Settings > Features > Codebase Indexing en Cursor, pulsa el botón de refresco y deja que la configuración surta efecto.

Configuración avanzada por escenario

Según el tipo de proyecto, puedes ajustar la plantilla base:

Proyectos React/Vue: excluye archivos grandes en public

# Añade sobre la configuración base
public/assets/
public/images/*.png
public/fonts/

Proyectos monorepo: excluye subpaquetes irrelevantes (esto es clave)

# Supón que trabajas en frontend y solo te importa apps/web
apps/mobile/
apps/admin/
packages/backend-utils/

Proyectos full stack: separa la indexación de frontend y backend

# Si trabajas sobre todo en frontend
server/
api/
database/
migrations/

# O si trabajas sobre todo en backend
client/
public/
src/components/

Un truco útil: si no estás seguro de si un archivo queda excluido, ejecuta en la terminal:

git check-ignore -v [ruta-del-archivo]

Aunque es un comando de git, la sintaxis coincide con .cursorignore, así que sirve para depurar la configuración.

.cursorignore vs .cursorindexingignore: elegir la herramienta correcta

Al principio yo también me liaba con estos dos archivos. Los nombres se parecen, ¿cuál es la diferencia? ¿Cuál usar?

En resumen: .cursorignore es bloqueo total; .cursorindexingignore es bloqueo parcial.

Diferencia esencial

.cursorignore: la IA no puede acceder en absoluto a esos archivos. No los indexa, no los lee ni los referencia. Para Cursor, es como si no existieran. Se usa en dos casos: archivos sensibles (.env, claves) o cosas que no quieres que la IA toque nunca (node_modules, artefactos de build).

.cursorindexingignore: los archivos no aparecen en las búsquedas del código base, pero la IA puede leerlos cuando haga falta (por ejemplo, al mencionarlos con @ o arrastrarlos al chat). Cursor añadió esta función más tarde, pensada sobre todo para optimizar el rendimiento.

Ejemplo: tienes un directorio legacy/ con código heredado de hace tres años. No quieres que contamine los resultados de búsqueda, pero a veces la IA puede necesitar consultar esa lógica antigua. Ahí encaja .cursorindexingignore.

Tabla de escenarios de uso

Tipo de archivoConfiguración recomendadaMotivo
.env, credentials.json.cursorignoreSeguridad primero: acceso totalmente prohibido
node_modules.cursorignoreNo hace falta que la IA entienda la implementación interna de dependencias
dist/build.cursorignoreLos artefactos compilados no aportan valor de referencia
Datos fixture de pruebas.cursorindexingignoreReduce ruido en búsquedas, pero la IA puede necesitar consultarlos
Código heredado.cursorindexingignoreNo quieres que aparezca a menudo, pero conservas acceso
Borradores de documentación.cursorindexingignoreAlivia la carga de indexación
Archivos grandes de datos de prueba.cursorignoreInútiles y ocupan mucho espacio

Prioridad de configuración

Cursor aplica estas configuraciones en este orden:

  1. Lee primero .gitignore del proyecto (se respeta automáticamente)
  2. Luego lee .cursorignore (puedes usar la sintaxis ! para sobrescribir gitignore)
  3. Por último aplica .cursorindexingignore

¿Qué implica esto? Si tu .gitignore excluye logs/, pero quieres que la IA acceda a un registro concreto, puedes escribir en .cursorignore:

!logs/important-debug.log

También existe una función útil llamada «Hierarchical Cursor Ignore». Al activarla (búscala en Settings), Cursor busca de forma recursiva .cursorignore en directorios padre. Es ideal para poner una configuración global en la raíz de un monorepo grande y añadir reglas complementarias en subproyectos.

Mi estrategia de uso

En la práctica, en la mayoría de casos me basta con .cursorignore. .cursorindexingignore es más una herramienta de ajuste fino, útil cuando el rendimiento es crítico o la estructura del proyecto es especialmente compleja.

Al empezar, te recomiendo:

  • Paso 1: usa solo .cursorignore y excluye lo que claramente no necesitas
  • Paso 2: observa una semana cómo se comporta la IA
  • Paso 3: si aún hay problemas, plantéate .cursorindexingignore para afinar

No intentes montar algo demasiado complejo desde el primer día; ir paso a paso funciona mejor.

3 estrategias de optimización para monorepos

Los monorepos son el tipo de proyecto que más fácilmente «rompe» la experiencia con Cursor. Un solo repositorio puede incluir frontend, backend, móvil, panel de administración… ante tanto código, la IA se confunde con facilidad.

Yo me equivoqué en un monorepo con 12 subaplicaciones. Pedí a la IA que optimizara un componente frontend y me sugirió usar una utilidad del directorio de APIs backend. Sonaba razonable, pero el frontend no podía acceder a ese código: los dos paquetes ni siquiera compartían el mismo entorno de ejecución.

Después resumí 3 estrategias que en la práctica funcionan muy bien:

Estrategia 1: dividir la indexación por zona de trabajo

La forma más directa: excluye los subproyectos que no te interesan.

Supón que eres del equipo frontend y trabajas sobre todo en apps/web. Excluye el resto de subaplicaciones:

# .cursorignore
apps/mobile/
apps/admin/
apps/api/
packages/backend-utils/
packages/database/
services/

Tiene dos ventajas: la indexación va más rápido y la IA no se distrae con código de otros subproyectos. En un monorepo donde dejé solo los dos paquetes de mi responsabilidad, el tiempo de indexación bajó de 15 minutos a 4.

Si eres full stack y cambias a menudo entre frontend y backend, prepara dos archivos: .cursorignore.frontend y .cursorignore.backend, y copia el adecuado a .cursorignore según el trabajo del momento.

Estrategia 2: guiar a la IA con Project Rules

El mayor problema de un monorepo es que la IA no entiende bien la relación entre directorios. Ahí entran las Project Rules para darle un mapa del proyecto. Nota: el antiguo archivo único .cursorrules de la raíz ahora es legacy y se ignora en modo Agent; para proyectos nuevos usa archivos .mdc en .cursor/rules/ (no .cursorignore). Crea, por ejemplo, .cursor/rules/project-structure.mdc con frontmatter YAML (description, globs, alwaysApply):

---
description: estructura del monorepo y reglas de referencia de código
alwaysApply: true
---

# Descripción de la estructura del proyecto

Este es un monorepo que incluye las siguientes subaplicaciones:

- apps/web: aplicación frontend (Next.js), puerto 3000
- apps/api: API backend (Node.js + Express), puerto 8000
- apps/admin: panel de administración (React), puerto 3001
- packages/ui: librería compartida de componentes UI
- packages/utils: funciones de utilidad comunes

## Reglas de referencia de código

- Las apps frontend (web/admin) solo pueden importar packages/ui y packages/utils
- El frontend no puede importar código de apps/api directamente
- Los paquetes compartidos (packages/*) no pueden depender de apps concretas (apps/*)

## Enfoque de trabajo actual

Ahora mismo el desarrollo principal está en apps/web; las sugerencias de optimización deben centrarse en código frontend.

La IA lee estas reglas y entiende mejor la estructura. El efecto es claro: después de configurarlo, rara vez vuelve a recomendar referencias entre fronteras.

Estrategia 3: modo de trabajo con ventanas separadas

En monorepos muy grandes (por ejemplo, con más de 20 subaplicaciones), aunque configures .cursorignore, el contexto de una sola ventana sigue siendo enorme.

Mi enfoque: abrir una ventana independiente de Cursor para cada subaplicación.

  • Ventana 1: abre el directorio apps/web
  • Ventana 2: abre el directorio apps/api
  • Ventana 3: abre el directorio packages/ui

Cada ventana tiene su propia indexación y contexto, y la IA entiende mejor. La desventaja es cambiar de ventana, pero en proyectos grandes compensa por la mejora de precisión.

Un truco: si hay dependencias entre subaplicaciones (por ejemplo, web depende de la librería ui), en la ventana de web puedes referenciar explícitamente con @folder:

@folder packages/ui Ayúdame a revisar la definición de props del componente Button

Así mantienes la ventana ligera y accedes al código de dependencias cuando haga falta.

Idea central para monorepos

En resumen, la optimización de un monorepo consiste en esto: hacer que la IA vea solo lo que necesita ver.

Cuanto más grande sea el proyecto, más hay que restar. No esperes que la IA entienda toda la arquitectura como tú; si le marcas límites, sus sugerencias serán más acertadas.

Verificar y mantener tu configuración

Configurar .cursorignore no es algo que haces una vez y olvidas. Tienes que comprobar que funciona y mantenerla con el tiempo.

Comprobar que la configuración funciona

Lo más intuitivo es mirar el tiempo de indexación. Compara la duración de Syncing antes y después; si baja de forma clara, la configuración está haciendo efecto.

Métodos más precisos:

  1. Revisar el estado de indexación
    Abre Settings > Features > Codebase Indexing y mira cuántos archivos se han indexado. Tras configurar .cursorignore, ese número debería bajar de forma notable.

  2. Probar el alcance del contexto de la IA
    Haz una pregunta con @codebase y comprueba si la respuesta sigue citando archivos excluidos. Por ejemplo, si excluyes node_modules y preguntas «qué componentes React hay en el proyecto», la IA no debería listar componentes dentro de node_modules/react.

  3. Verificar la búsqueda
    Usa la búsqueda de código de Cursor (Cmd/Ctrl + P) para buscar un archivo dentro de un directorio que hayas excluido. Si no aparece, la configuración ha funcionado.

Cuándo refrescar la indexación manualmente

Cursor detecta cambios de archivos y actualiza la indexación de forma incremental, pero en estos casos conviene refrescar a mano:

  • Has modificado .cursorignore
  • Cambias a una rama de Git con cambios grandes
  • Borras o añades muchos archivos de golpe
  • Sientes que la IA ya no entiende bien el proyecto, posiblemente por indexación desactualizada

Cómo refrescar: Settings > Features > Codebase Indexing > Refresh. Un clic basta. El refresco reindexa todo el proyecto; espera a que termine Syncing.

Mantenimiento diario de la configuración

.cursorignore no se escribe una vez y ya está. A medida que el proyecto evoluciona, puede que tengas que ajustarla:

Lista de revisión mensual:

  • ¿Se han excluido nuevos directorios de build? (por ejemplo, .output/ tras actualizar el framework)
  • ¿Hay nuevos directorios con archivos grandes que convenga excluir?
  • ¿Siguen existiendo los directorios que ya excluías? (limpia reglas obsoletas)

Recomendaciones para trabajo en equipo:

Si es un proyecto de equipo, ¿conviene commitear .cursorignore a Git? Mi recomendación depende del caso:

  • Reglas generales de exclusión (node_modules, dist, etc.): sí, commítelas para que todo el equipo se beneficie
  • Preferencias personales de trabajo (excluir ciertos subproyectos): no las commitees, o añádelas a .git/info/exclude

También puedes añadir en .gitignore:

.cursorignore.local

Y escribir tu configuración personal en .cursorignore.local, referenciándola desde .cursorignore si Cursor admite sintaxis de include.

Documenta el motivo de cada exclusión con comentarios

Es un hábito muy útil. En .cursorignore, añade comentarios explicando por qué excluyes un directorio:

# 2025-01-15: excluir el nuevo directorio de datos de entrenamiento IA; archivos demasiado grandes y sin necesidad de indexación
data/training/

# 2025-01-10: excluir temporalmente el directorio de pruebas de rendimiento; contiene muchos archivos de registro
perf-tests/

Tres meses después, te agradecerás haber dejado esos comentarios.

Lectura relacionada

Resumen

Volvamos al problema del inicio: ¿indexación lenta y respuestas imprecisas de la IA en Cursor significan que la herramienta no sirve?

No. En la mayoría de casos, simplemente no le hemos dicho a la IA qué debe mirar y qué debe ignorar.

.cursorignore es una herramienta sencilla pero muy potente. Dedicar 5 minutos a configurarla puede ahorrarte horas de espera en los próximos meses y, sobre todo, hacer que la IA dé sugerencias más acertadas.

Lista de acción en tres pasos:

  1. Actúa ya: copia la plantilla base de este artículo y crea .cursorignore en la raíz del proyecto
  2. Personaliza: según tu tipo de proyecto (React/Vue/Monorepo), añade reglas de exclusión específicas
  3. Mejora de forma continua: observa el comportamiento de la IA durante una semana, anota problemas e itera la configuración

No hace falta buscar la configuración perfecta a la primera. Empieza con la plantilla base para resolver el 80 % del problema y ajusta el 20 % restante sobre la marcha.

Si también usas Cursor en proyectos grandes, prueba estas estrategias. Comparte en los comentarios tu experiencia de configuración o los problemas que encuentres; quizá ayudes a otros desarrolladores en la misma situación.

Proceso completo de configuración de .cursorignore en Cursor

Pasos detallados para configurar .cursorignore desde cero y optimizar la indexación del código base en Cursor

⏱️ Estimated time: 10 min

  1. 1

    Step 1: Crear el archivo .cursorignore y añadir la configuración base

    Paso 1: crea el archivo .cursorignore en la raíz del proyecto

    Plantilla de configuración base (cubre el 90 % de los escenarios):
    • Directorios de dependencias: node_modules/, vendor/, .pnp/
    • Artefactos de compilación: dist/, build/, out/, .next/, .nuxt/, .cache/
    • Archivos de prueba: coverage/, *.spec.js, *.test.js, __tests__/
    • Archivos de registro: *.log, npm-debug.log*, yarn-error.log*
    • Configuración de entorno: .env, .env.local, credentials.json, *.key
    • Control de versiones: .git/, .svn/
    • Recursos grandes: *.mp4, *.zip, *.pdf, public/videos/

    Nota: la sintaxis es igual que .gitignore; los directorios terminan con barra, admite comodines * y **, y # inicia comentarios
  2. 2

    Step 2: Añadir configuración específica según el tipo de proyecto

    Paso 2: elige la configuración avanzada adecuada para tu proyecto

    Exclusiones adicionales en proyectos React/Vue:
    • public/assets/ (recursos estáticos grandes)
    • public/images/*.png (archivos de imagen)
    • public/fonts/ (archivos de fuentes)

    Configuración para monorepos:
    • apps/mobile/ (excluir la app móvil)
    • apps/admin/ (excluir el panel de administración)
    • packages/backend-utils/ (excluir el paquete de utilidades backend)
    • Conservar solo el subproyecto en el que trabajas actualmente

    Configuración para proyectos full stack:
    • Desarrollo frontend: excluir server/, api/, database/, migrations/
    • Desarrollo backend: excluir client/, public/, src/components/

    Consejo: los desarrolladores full stack pueden preparar .cursorignore.frontend y .cursorignore.backend y cambiar según el trabajo del momento
  3. 3

    Step 3: Verificar que la configuración funciona

    Paso 3: comprobar el efecto de la configuración

    Método 1: revisar el tiempo de indexación
    • Compara la duración de Syncing antes y después de la configuración; debería acortarse de forma notable

    Método 2: revisar el estado de indexación
    • Abre Settings > Features > Codebase Indexing
    • Consulta el número de archivos indexados; debería bajar de forma clara

    Método 3: probar el contexto de la IA
    • Usa @codebase y pregunta: ¿qué componentes React hay en el proyecto?
    • La IA no debería listar componentes dentro de node_modules/react

    Método 4: verificar la búsqueda
    • Con Cmd/Ctrl + P, busca archivos en directorios excluidos
    • Si no aparecen, la configuración ha funcionado

    Refrescar la indexación: Settings > Features > Codebase Indexing > Refresh
  4. 4

    Step 4: Configuración especial para monorepos (opcional)

    Paso 4: estrategias adicionales de optimización para monorepos

    Estrategia 1: dividir por zona de trabajo
    • Excluye en .cursorignore los subproyectos que no te interesan
    • Ejemplo: el equipo frontend excluye apps/mobile/, apps/api/, packages/backend-utils/
    • Resultado: el tiempo de indexación baja de 15 minutos a 4 minutos

    Estrategia 2: usar Project Rules
    • Crea archivos .mdc en .cursor/rules/ (el antiguo .cursorrules de la raíz es legacy y se ignora en modo Agent)
    • Describe la estructura del proyecto, las relaciones entre subaplicaciones y las reglas de referencia de código
    • Ayuda a la IA a entender la arquitectura del monorepo y reduce recomendaciones entre fronteras

    Estrategia 3: trabajar con ventanas separadas
    • Abre ventanas independientes de Cursor para distintas subaplicaciones
    • Ventana 1 abre apps/web, ventana 2 abre apps/api
    • Usa @folder para referenciar explícitamente el código de paquetes dependientes

FAQ

¿Cuál es la diferencia entre .cursorignore y .cursorindexingignore? ¿Cuál debería usar?
La diferencia principal está en el control de acceso:

• .cursorignore: bloquea por completo el acceso de la IA. No indexa, no lee ni referencia. Sirve para archivos sensibles (.env, credentials.json) y archivos inútiles (node_modules, dist)
• .cursorindexingignore: solo excluye de la indexación, pero la IA puede leerlos cuando haga falta. Sirve para código heredado y datos fixture de pruebas

Estrategia recomendada: en el 90 % de los casos basta con .cursorignore. Configura primero las reglas básicas de exclusión, observa el comportamiento de la IA durante una semana y usa .cursorindexingignore solo si necesitas un ajuste fino
¿Qué hago si la indexación sigue siendo lenta después de configurar .cursorignore?
Pasos de diagnóstico:

1. Comprueba si la configuración funciona: en Settings > Features > Codebase Indexing revisa el número de archivos indexados; debería bajar de forma notable
2. Refresca la indexación manualmente: tras modificar la configuración hay que pulsar Refresh
3. Busca directorios grandes que hayas omitido: ejecuta `du -sh */` para localizar directorios pesados y añádelos a .cursorignore
4. Caso especial de monorepo: excluye subproyectos irrelevantes o abre ventanas independientes para cada subaplicación
5. Limpia la caché: elimina el directorio .cursor y vuelve a indexar

Caso típico: un proyecto de 100.000 líneas debería pasar de 8 minutos a 2-3 minutos tras la configuración. Si la diferencia es pequeña, la configuración está incompleta
Tras excluir node_modules, ¿la IA puede seguir sugiriendo APIs de librerías de terceros?
Sí, puede sugerirlas con normalidad. Motivos:

• Los datos base de entrenamiento de la IA ya incluyen conocimiento de librerías habituales (React, Vue, Express, etc.)
• Las sentencias import de tu código indican qué librerías usas
• La IA infiere el uso de las APIs a partir del contexto, sin necesidad de indexar el código fuente de node_modules

Prueba real: tras excluir node_modules, las sugerencias sobre React Hooks, métodos de Lodash y peticiones con Axios funcionan con total normalidad, y además se reducen los casos en los que la IA confunde código de dependencias con código del proyecto

Nota: en librerías poco comunes las sugerencias pueden ser menos precisas; puedes volver a incluir temporalmente un paquete concreto usando la sintaxis !
En trabajo en equipo, ¿debería commitear .cursorignore a Git?
Depende del caso:

Configuración que sí conviene commitear:
• Reglas generales de exclusión (node_modules, dist, .git, .env, etc.)
• Directorios específicos del framework (.next, .nuxt, .cache, etc.)
• Directorios de recursos grandes (public/videos, data/datasets, etc.)

Configuración que no conviene commitear:
• Preferencias personales de trabajo (excluir ciertos subproyectos)
• Rutas específicas del entorno de desarrollo
• Exclusiones temporales de depuración

Enfoque recomendado:
1. Commitea la configuración común en .cursorignore
2. Escribe la configuración personal en .cursorignore.local
3. Añade .cursorignore.local a .gitignore
4. Usa comentarios en .cursorignore para explicar el propósito de cada regla
En un monorepo, ¿cómo configuran .cursorignore distinto los desarrolladores frontend y backend?
Tres enfoques:

Enfoque 1: preparar varios archivos de configuración
• Crea .cursorignore.frontend y .cursorignore.backend
• Copia el adecuado a .cursorignore según el trabajo del momento
• Adecuado para desarrolladores full stack que cambian con frecuencia

Enfoque 2: trabajar con ventanas separadas
• Ventana 1 abre apps/web (app frontend)
• Ventana 2 abre apps/api (app backend)
• Cada ventana tiene su propia configuración de .cursorignore
• Adecuado para monorepos grandes (20+ subaplicaciones)

Enfoque 3: configuración por rama de Git
• La rama main conserva la configuración común
• Las ramas personales personalizan .cursorignore
• Revierte los cambios del archivo de configuración antes de commitear código

Recomendación: equipos pequeños o medianos usan el enfoque 1; equipos grandes, el enfoque 2
Tras configurarlo, la IA sigue referenciando código en directorios excluidos. ¿Qué hago?
Posibles causas y soluciones:

1. La indexación no se ha refrescado
• Solución: Settings > Codebase Indexing > Refresh

2. Error de sintaxis en la configuración
• Comprueba: ¿los directorios terminan con barra (node_modules/)?
• Comprueba: ¿los comodines son correctos (*.log y no *.log/)?

3. Conflicto con .gitignore
• Cursor lee tanto .gitignore como .cursorignore
• Usa la sintaxis ! para sobrescribir reglas de .gitignore

4. La IA usa contexto histórico
• Borra el historial del chat y vuelve a preguntar
• Elimina el directorio de caché .cursor y vuelve a indexar

5. El archivo en realidad no está excluido
• Prueba: búscalo con Cmd/Ctrl + P; si aparece, no está excluido
• Usa git check-ignore -v [ruta-del-archivo] para depurar la configuración

14 min de lectura · Publicado el: 15 ene 2026 · Actualizado el: 21 ago 2026

Comentarios

Inicia sesión con GitHub para dejar un comentario

Easton BlogEaston Blog