Это коллекция конфигураций для фронтенд приложений от KODE.
Этот монорепозиторий включает в себя следующие пакеты:
-
@kode-frontend/prettier-config
: Prettier конфигурация. [Документация] -
@kode-frontend/eslint-config
: ESLint конфигурация. [Документация] -
@kode-frontend/commitlint-config
: Commitlint конфигурация. [Документация] -
@kode-frontend/session-interceptor
: Интерсептор сессии для обработки flow обновления jwt-токенов -
@kode-frontend/react-native-push-notification
: Сервис Push-уведомлений для React Native приложений
Интересные вещи, использованные в этом монорепозитории:
-
🏎 Turborepo — Высокопроизводительная система сборки для монорепозиториев
-
🐞 Lefthook — Менеджер Git-хуков
-
📋 Changesets — Управление версиями, публикациями и changelogs
-
🔄 Syncpack — Обеспечивает согласованные зависимости и стиль package.json внутри пакетов в монорепо
-
🛠 GitHub Actions — Запуск рабочих процессов в непрерывной интеграции
Для разработки всех пакетов клонируй этот репозиторий и выполни следующую команду:
cd frontend-depend
pnpm dev
Для сборки всех пакетов выполни следующую команду:
cd frontend-depend
pnpm build
Для версионирования и публикации пакетов используется инструмент Changesets. Если PR затрагивает функциональность одного из пакетов, то он должен включать в себя набор изменений.
Файл с набором изменений можно сгенерировать двумя способами:
- с помощью CLI команды
pnpm changeset add
. После ввода команды будет предложено выбрать пакет, в котором было произведено изменение, тип релиза (major, minor, patch) и ввести описание изменения. - с помощью changeset bot. В этом случае на странице с pull request-ом будет отображено сообщение с баннером 'No Changeset' и ниже ссылка для создания набора изменений - Click here if you're a maintainer who wants to add a changeset to this PR. По клику на нее генерируется и открывается на редактирование md-файл. В нем нужно ввести понятное описание сделанных изменений на русском языке, а также добавить или удалить названия пакетов (только в случае если бот неверно их определил).
Описание изменения может состоять из произвольного количества строк в формате md. Вот несколько особенностей, на которые стоит обращать внимание:
- форматируется только первая строка описания (добавляется дефис "-", если его не было), вторая и последующие строки попадут в CHANGELOG так, как вы их запишете (сохранится разметка md)
- при добавлении нового компонента нужно указать '0.0.0' версию пакета в package.json, в наборе изменений указать мажорный ('major') тип релиза, а в описание обязательно добавить фразу 'Добавлен новый пакет $'. Пример приведен ниже.
---
'@kode-frontend/session-interceptor': major
---
Добавлен новый пакет @kode-frontend/session-interceptor
После слияния вашего PR в основную ветку, GitHub Action создаст PR со всеми обновленными версиями пакетов и обновленными changelog'ами. Если будут слиты еще PR с дополнительными changeset'ами, то PR, открытый GitHub Action, будет обновлен.
Слияние этого PR, помимо обновления всех измененных файлов, вызовет цикл релиза GitHub Action, в котором он опубликует каждый пакет, не помеченный как private
.