Frontend
October 15, 2023

Nx CLI: управление монорепозиторием 

Что такое монорепозиторий? Это когда весь код для разных частей проекта хранится в одном репозитории.

Зачем это нужно? Когда код в одном месте, проще:

  • Делиться кодом между разными частями проекта
  • Тестировать изменения
  • Вносить глобальные изменения

Короче, это очень удобно!

Установка и настройка Nx CLI

Чтобы начать пользоваться Nx CLI, нужно его установить.

Для этого в терминале вводим:

npm install -g @nrwl/cli

Потом можно настроить среду. Например, создать конфиг:

nx g @nrwl/workspace:workspace-configuration

Или добавить Angular:

nx g @nrwl/angular:app my-app

В общем, с помощью команды nx generate или nx g можно настроить все что угодно.

Создание монорепозитория

Теперь создадим монорепозиторий!

Для этого вводим:

nx g @nrwl/workspace:workspace-schematic my-workspace

Готово! В папке my-workspace теперь есть базовая структура репозитория.

Можно сразу добавить проекты:

cd my-workspace
nx g @nrwl/angular:app my-first-app

Добавление проектов

Чтобы добавить новый проект, используй команду nx g.

Например, чтобы добавить React-приложение:

nx g @nrwl/react:app my-react-app

Все проекты хранятся в папке apps. Библиотеки общих модулей - в libs.

Очень удобно!

Управление зависимостями

Между проектами часто бывают зависимости.

Например, my-app использует код из my-lib.

Чтобы указать это, добавляем в файл project.json:

{
  "dependencies": {
    "my-lib": "workspace:*"
  }
}

Таким образом проекты узнают друг о друге.

Работа с кодом и тестирование

В монорепозитории удобно работать с кодом.

Можно запустить все тесты:

nx test

Или тесты конкретного проекта:

nx test my-app

Чтобы запустить проект, используй:

nx serve my-app

В общем, с помощью команд nx очень удобно кодить.

Оптимизация процесса разработки

В заключение дам несколько советов, как оптимизировать работу:

  • Используй линтинг кода с ESLint
  • Настрой GitHooks для автоматизации задач
  • Включи кэширование для ускорения сборки
  • Разделяй проект на небольшие модули

Главное - экспериментируй и ищи способы улучшить свой workflow. Надеюсь, я объяснил, как удобно работать с Nx CLI.