Skip to content
Leonid Fenko edited this page Dec 12, 2018 · 23 revisions

NB: Необходимо установить хуки гита перед работой над проектами.

NB: Каждый package является отдельным проектом и должен открываться в отдельном окне IDE.

NB: "Подъем" общих зависимостей отсутствует. Каждый package следует рассматривать отдельно (указывать все зависимости проекта в его package.json).

Инструменты

  • Yarn v1.9.4;
  • Node v8.11.1 (with npm v5.6.0);
  • Последний WebStorm или Visual Studio Code;

Устройство репозитория

Корневой проект нужен для высокоуровневых операций:

  • версионирования;
  • установки хуков гита;
  • конфигурирования гита.

Бойлерплейт состоит из двух отдельных проектов (packages):

  • Frontend Server - сервер для отдачи статики, SSR, сессий и склеивания GraphQL-схем. Им занимаются бэкенд-разработчики.
  • Frontend - клиентская часть фронтенда, предоставляет Frontend Server статику и middleware для SSR. Им занимаются фронтенд-разработчики.

При сборке нужно сначала собрать Frontend, а затем Frontend Server. При этом Frontend скопируется в node_modules Frontend Server, т.е. деплоить нужно только его.

Почему Frontend Server - это отдельный проект

  • Он делается другими людьми и в другом контексте, нежели Frontend.
  • Никто не хочет оставлять его в Backend или Frontend.
  • Получилось вынести его, не ломая текущий деплой.

Почему монорепозиторий

  • Frontend и Frontend Server должны четко соответствовать друг другу.
  • Так проще управлять ветками.

Начало нового проекта

TBD.

Версионирование

Использовать yarn lerna version. Обычного yarn lerna version minor должно быть достаточно. Сначала нужно установить зависимости: yarn i.

Установка хуков гита

Нужно просто выполнить yarn i.

Конфигурирование гита

Использовать yarn git:configure. Сначала нужно установить зависимости: yarn i.

Скритпы Yarn

Управление пакетами

NB: Необходимо использовать yarn i вместо yarn или yarn install

  • yarn i: сокращение для yarn install --frozen-lockfile;
  • yarn a: сокращение для yarn add -T -D;
  • yarn r: сокращение для yarn remove.

Prettier

NB: Prettier форматирует код перед коммитом.

  • prettier:all: форматировать все, что возможно.

Линтеры

NB: Код проверяется перед коммитом.

  • lint:js: eslint;

Конфигурирование гита

  • yarn git:configure: установить глобальный конфиг в соответствии с соглашениями (интерактивно).

Хуки гита (только для дебага)

NB: скрипт pre-commit должен быть определен в каждом проекте (package) и должен использовать lint-staged. Все скрипты pre-commit будут запущены с помощью husky перед коммитом.

  • yarn prepare-commit-msg: добавить в сообщение коммита номер тикета, если необходимо;
  • yarn commit-msg: валидировать сообщение коммита;
  • yarn pre-commit: линтеры, ошибки типов, prettier, проверка соответствия yarn.lock и package.json, и т.п. (в рутовом и дочерних проектах);
  • yarn post-commit: хак для корректного взаимодействия IDE с гитом.

Назад | Наверх | Внутрь | Далее

Clone this wiki locally