-
Notifications
You must be signed in to change notification settings - Fork 2
Home
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.
- Никто не хочет оставлять его в Backend или Frontend.
- Получилось вынести его, не ломая текущий деплой.
- Frontend и Frontend Server должны четко соответствовать друг другу.
- Так проще управлять ветками.
- Форкнуть или скопировать бойлерплейт.
- В корневом проекте изменить название WebStorm-проекта (и директории).
- В корневом проекте изменить название проекта в README.md.
- Во всех package изменить префикс переменных окружения (REACT_BOILERPLATE).
- В корневом проекте и всех package изменить название проекта в package.json.
- В Frontend изменить APP_NAME, APP_SHORT_NAME и APP_DESCRIPTION в конфиге вебпака.
- В Frontend изменить fallback для REACT_BOILERPLATE_CANONICAL_ROBOTS_HOST или удалить его.
- В Frontend сгенерировать файлы для favicon, заменить существующие файлы иконок и убедиться в правильности тегов в
InitialHelmet
. См. Favicon. - Во всех package заменить
react-boilerplate
в конфигах nginx и supervisor, а также в файлеbuild.xml
. - Настроить сборку через Jenkins. Готовый пример джоба для деплоя Frontend Server.
- Нужно прилинковать конфиги nginx
- Могут быть проблемы с исполняемостью environment.sh
Использовать yarn lerna version
. Обычного yarn lerna version minor
должно быть достаточно. Сначала нужно установить зависимости: yarn i
.
Нужно просто выполнить yarn i
.
Использовать yarn git:configure
. Сначала нужно установить зависимости: yarn i
.
Номер задачи автоматически подставляется в сообщение (subject) коммита, поэтому работать надо в ветке задачи (AB-123
).
Сообщение коммита валидируется с помощью хуков гита. Оно должно быть вида AB-123: Add feature
(префикс задачи с пробелом ставится автоматически). Длина строк, отделение subject от body и отсутствие точки в subject также валидируются.
NB: Необходимо использовать
yarn i
вместоyarn
илиyarn install
-
yarn i
: сокращение дляyarn install --frozen-lockfile
; -
yarn a
: сокращение дляyarn add -E -D
; -
yarn r
: сокращение дляyarn remove
.
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 с гитом.
Назад | Наверх | Внутрь | Далее
Спасибо за чтение документации ✨
- Home
- Backend
- Frontend Server
-
Frontend
- Структура компонента приложения
- Структура проекта
- Правила именования
- Конфиги
- Источники данных
- Роутинг
- Иконки и картинки
- Шрифты
- Изменение тегов HEAD
- Адаптивность
- Сторонний CSS
- Favicon
- Cache Busting
- Code Splitting
- Обработка ошибок
- Общие компоненты
- Полезные компоненты в других проектах
- Live Templates
- Apollo и REST