antiage-ui-kit
v4.22.1
Published
A react component library Anti-Age
Downloads
194
Readme
Anti-Age UI-Kit
Краткое описание
Проект создан по шаблону библиотеки tsdx
. В нём используется семантическое версионирование semantic-release
.
Собирается проект с помощью Rollup
.
Установка проекта
- Настроить git для избежания конфликта
LF
иCRLF
(опционально)
git config --global core.autocrlf 'input'
- Склонировать репозиторий
- Установить зависимости
npm install
Архитектура
src/
index.ts // корень UI-Kit, реэкспорты компонентов и их стилей
ui-kit.css // CSS-переменным по Opium.Fill
components/ // компоненты UI-Kit
NameComponent // шаблон компонента
NameComponent.tsx // компонент
NameComponent.css // стили
NameComponent.test.ts // тесты
NameComponent.stories.tsx // storybook компонента
NameComponent.types.ts // типы компонента
index.ts // реэкспорт компонента по дефолту
assets // компоненты svg
NameAsset.tsx // компонент svg
SvgAssets.stories.tsx // список svg, которые можно использовать
index.ts // реэкспорт компонентов
Npm Scripts
npm run prepare
- Установить Huskynpm run build
- Сборка проектаnpm run test
- Запуск тестовnpm run size
- Проверка собранного проекта на ограничение по весуnpm run lint
- Выявление несоответствий и авто-исправление кодового стиля в.js/.ts
файлахnpm run stylelint
- Выявление несоответствий и авто-исправление кодового стиля в.css
файлахnpm run semantic-release
- Выпуск новой версии проекта в релизnpm run storybook
- ЗапускStorybook
вdevelopment
режимеnpm run build-storybook
- ВыпускStorybook
проекта черезGitHub Pages
npm run generate NameComponent
- Создание шаблона компонента UI-Kit компонентаnpm run svgr
- Создание svg-компонентов из .svg. Файлы нужно класть в папкуassets
Git Branching
Наименования веток:
feat/name-feat
- новая фичаfix/name-fix
- исправление багаdocs/name-docs
- добавление или изменение документацииstyle/name-style
- изменения, которые не влияют на работу кодаrefactor/name-refactor
- изменения без новой функциональности, без исправления багаperf/name-perf
- изменения повышающее производительностьtest/name-test
- добавление или изменение тестовchore/name-chore
- изменения процесса сборки, вспомогательных инструментов, библиотек
Commits Naming
В проекте используется semantic-release
, поэтому у коммитов должно быть оформленное по всем правилам название.
Это нужно для определения следующего номера версии проекта. Все правила взяты
из "Соглашение о коммитах" К прочтению ОБЯЗАТЕЛЬНО!
Сообщение коммита должно быть следующей структуры:
<тип>[необязательный контекст]: <описание>
[необязательное тело]
[необязательная(ые) сноска(и)]
- Тип должен браться из классификации разрешённых типов, например
feat
. - Контекст берётся исходя над чем велась работа, например
(Button)
. - Описание должно быть в повелительном наклонении, например
add secondary color
.
Классификация типов:
feat
- новая фичаfix
- исправление багаdocs
- добавление или изменение документацииstyle
- изменения, которые не влияют на работу кодаrefactor
- изменения без новой функциональности, без исправления багаperf
- изменения повышающее производительностьtest
- добавление или изменение тестовchore
- изменения процесса сборки, вспомогательных инструментов, библиотек
GitHub Actions
main
- Запуск проекта на 14 и 16 версияхNode.js
(Выполняется автоматически при каждомpush
в удалённый репозиторий)release
- Выпуск новой версии (Выполняется автоматически приpush
илиmerge
вmaster
)size
- Проверка проекта на лимит по весу (Выполняется автоматически при каждомPullRequest
)storybook
- ОбновлениеStorybook
наGitHub Pages
Workflow
- Каждый компонент должен быть выполнен по шаблону. Команда для создания шаблона описана в разделе
Npm Scripts
- Каждый
svg
должен быть превращён в svg-компонент. Команда для превращения описана в разделеNpm Scripts
- Каждый svg-компонент должен отображаться в
SvgAssets
. - В конце разработки задача должна пройти
Сode Review
от любого разработчика из команды - После успешного релиза новой версии, разработчик должен запустить
GitHub Action
storybook
Code Review
- Ревью проводится для каждого участника команды, вне зависимости от уровня
- Время на ревью должно быть не больше 20 минут
- У ревью самый высокий приоритет, должно быть выполнено в течение 30 минут
Список проверок на ревью:
- Архитектура
- Реализация компонента (функциональности, дизайн и т.д)
- Наименование функций, переменных, типов и т.д.
- Наличие тестов и Storybook-документации
Приоритеты:
- 🔥 - важно, нужно исправить в первую очередь
- ❓ - нужно обсудить и принять решение
- 💬 - править необязательно, принимай решение сам
- 👍 - всё правильно, ревью завершено