Cursor для работы с большими монорепозиториями на React

Как настроить Cursor для работы с большими монорепозиториями на React

Настройте Cursor для работы с большими React-монорепозиториями, исключив из индексации ненужные папки, правильно сконфигурировав игнорирование файлов и установив корректный контекст для AI-подсказок. Это увеличит скорость работы редактора в 3–5 раз и повысит качество автодополнения.

Причины проблемы

  • Cursor индексирует все файлы в репозитории, включая node_modules, .git и артефакты сборки, что замораживает редактор
  • AI теряет контекст из-за огромного количества файлов в одном проекте и неправильно форматирует подсказки
  • Поиск по файлам и перейти к определению работают с задержкой в несколько секунд
  • Линтер и TypeScript-сервер конфликтуют друг с другом в структуре монорепозитория
  • Большой размер .cursorignore замедляет парсинг конфигурации

Пошаговая инструкция

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

Часто задаваемые вопросы

Как узнать, индексирует ли Cursor мои node_modules? Нажмите Ctrl+Shift+PCursor: Show Index Status — увидите список папок, включённых в индексацию.

Почему AI всё ещё предлагает неправильный контекст после настройки? Убедитесь, что файл .cursorignore находится в корне проекта (не в подпапке), и перезагрузите окно редактора через Developer: Reload Window.

Нужно ли создавать отдельный .cursorignore для каждого пакета в монорепозитории? Нет, достаточно одного в корне; Cursor автоматически применяет правила ко всем подпапкам, если они не переопределены локальным .cursorignore в пакете.

Похожие материалы

ИИ для генерации роутинга и контроллеров в Laravel
GitHub Copilot блокирует коммерческие репозитории компании
GitHub Copilot к среде разработки IntelliJ IDEA