Skip to content

NEWESTERS/monowebo

Repository files navigation

Monowebo Fullstack

Шаблон монорепозитория для быстрого старта клиент-серверного приложения

🏗 Подготовка

Для работы с проектом необходимо установить rush глобально:

npm install -g @microsoft/rush

Документацию по работе с rush можно найти здесь.

⚠️ Основное правило

НЕ использовать использовать пакетный менеджер напрямую (например, npm install, npm update, npm link, npm dedupe, pnpm install), так как это может повредить структуру зависимостей. Исключение составляет запуск npm-скриптов через npm run или, например, npm start.

Необходимо пользоваться аналогами команд, которые предоставляет rush.

🧬 Структура монорепозитория

  • @monowebo/backendexpress сервер
  • @monowebo/frontendreact клиентское приложение
  • @monowebo/utilities — набор общих утилит, которые можно использовать как на клиенте, так и на сервере

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

Сборка

Перед разработкой пакета из монорепозитория необходимо собрать актуальную версию всех его зависимостей. Сделать это можно командой:

rush build -T package-name # "package-name" — название пакета, у которого имеются зависимости в этом монорепозитории

Установка

Добавить зависимость к пакету в репозитории можно двумя способами:

Первый способ

cd apps/frontend # Перейти в директорию пакета
rush add --package react # Добавить текущему пакету зависимость

Второй способ

Изменить секцию dependencies в package.json у пакета и выполнить команду:

rush update

Команду rush update можно использовать в любой момент. Если rush обнаружит изменения в package.json любого из пакетов, он автоматически установит недостающие зависимости. Если список зависимостей актуален, то команда выполнится мгновенно.

Зависимости устанавливаются с помощью PNPM со строгой проверкой версий peerDependencies во избежание построения невалидного дерева зависимостей или дублирования, поэтому при возникновении ошибки во время установки может понадобиться добавить недостающие пакеты в package.json самостоятельно

💅 Code Style

Для единого форматирования кода используется Prettier, а для соблюдения стиля написания кода — ESLint с шаблоном @rushstack/eslint-config

Перед коммитом изменённые файлы проверяются ESLint на соответствие стилю (в случае несоответствия коммит будет отклонён), а так же форматируются Prettier

💻 VSCode

Для удобной работы со структурой монорепозитория проект стоит открывать в VSCode из файла monowebo.code-workspace

Для удобства работы согласно стилю кода можно установить расширения для VSCode:

About

Шаблон монорепозитория для быстрого старта клиент-серверного приложения

Topics

Resources

Stars

Watchers

Forks