Настройте Cursor для работы с большими React-монорепозиториями, исключив из индексации ненужные папки, правильно сконфигурировав игнорирование файлов и установив корректный контекст для AI-подсказок. Это увеличит скорость работы редактора в 3–5 раз и повысит качество автодополнения.
Причины проблемы
- Cursor индексирует все файлы в репозитории, включая node_modules, .git и артефакты сборки, что замораживает редактор
- AI теряет контекст из-за огромного количества файлов в одном проекте и неправильно форматирует подсказки
- Поиск по файлам и перейти к определению работают с задержкой в несколько секунд
- Линтер и TypeScript-сервер конфликтуют друг с другом в структуре монорепозитория
- Большой размер .cursorignore замедляет парсинг конфигурации
Пошаговая инструкция
- Откройте корневую папку монорепозитория в Cursor.
- Нажмите
Ctrl+Shift+P(илиCmd+Shift+Pна macOS) и выполните командуPreferences: Open User Settings (JSON). - Добавьте в JSON-конфиг следующие строки для исключения папок из индексации:
"files.exclude": { "**/node_modules": true, "**/.git": true, "**/.next": true, "**/.venv": true, "**/dist": true, "**/build": true, "**/.turbo": true, "**/coverage": true, "**/.yarn": true } - В той же папке проекта создайте файл
.cursorignore(если его нет). - Скопируйте в
.cursorignoreсодержимое:node_modules/ .git/ .next/ dist/ build/ .turbo/ coverage/ *.log .env.local .DS_Store .vscode/ .idea/ .yarn/ - Откройте командную строку в корне проекта и выполните
cursor --reindexдля пересканирования проекта (если команда не работает, перезагрузите редактор сочетаниемCtrl+Shift+P→Developer: Reload Window). - В
settings.jsonдобавьте настройки для AI-контекста:"cursor.aiContext.maxTokens": 8000, "cursor.aiContext.enableSmartSelection": true - Если используете Turborepo или Lerna, создайте в корне файл
cursor.workspace.jsonс явным указанием рабочих пространств:{ "workspaces": [ "packages/ui", "packages/utils", "packages/api", "apps/web" ] } - Отключите встроенный TypeScript-сервер Cursor для монорепозториев: в
settings.jsonдобавьте"typescript.tsdk": "node_modules/typescript/lib"и укажите путь кtsconfig.jsonкаждого пакета. - Установите расширение
Monorepo Assistantиз маркетплейса Cursor для автоматического переключения контекста между пакетами. - В файле
.cursor/settings.json(создайте папку.cursorв корне, если её нет) добавьте:{ "indexing": { "enabled": true, "followSymlinks": false, "maxDepth": 10 }, "ai": { "contextWindow": "large", "modelPreference": "gpt-4" } } - Перезагрузите Cursor полностью: закройте редактор и откройте его заново.
- Проверьте скорость работы: откройте папку проекта, нажмите
Ctrl+Pи введите имя файла — поиск должен работать мгновенно.
Часто задаваемые вопросы
Как узнать, индексирует ли Cursor мои node_modules? Нажмите Ctrl+Shift+P → Cursor: Show Index Status — увидите список папок, включённых в индексацию.
Почему AI всё ещё предлагает неправильный контекст после настройки? Убедитесь, что файл .cursorignore находится в корне проекта (не в подпапке), и перезагрузите окно редактора через Developer: Reload Window.
Нужно ли создавать отдельный .cursorignore для каждого пакета в монорепозитории? Нет, достаточно одного в корне; Cursor автоматически применяет правила ко всем подпапкам, если они не переопределены локальным .cursorignore в пакете.