Анатомия React компонента
Моё видение того, как должен выглядеть React компонент
104
7 мин.
48
2 мин.
Стандарт SSG определяет требования к семантике, доступности и логике работы Git.
Сообщение коммита должно быть структурировано следующим образом:
<тип>([область действия]): <краткое описание>
[Тело коммита]
[Нижний колонтитул(ы)]
Тип - классификация коммита:
Область действия опционально, указывает на затронутую часть проекта (например, ui, api, auth):
feat(api): добавлена новая конечная точка для пользователей
Описание описывает изменения, желательно повелительным наклонением, не более 50 символов.
Тело поясняет, что и почему изменено.
Нижний колонтитул используется для Breaking Changes, несовместимые изменения указываются через BREAKING CHANGE: или feat!, например feat!: удалены устаревшие api-методы, а также для ссылок на задачи, например, Closes #123.
Пайплайн обеспечивает форматирование, проверку коммитов и безопасное слияние веток.
npm i -D \ husky \ lint-staged \ @commitlint/cli \ @commitlint/config-conventional \ @commitlint/types \ conventional-changelog-conventionalcommits \ @archoleat/commitlint-define-config
Lint-staged проверяет только проиндексированные изменения:
export default { '*': 'prettier --write', 'src/**/*.{tsx,ts}': 'eslint --fix', 'src/**/*.scss': 'stylelint --fix', };
Commitlint проверяет формат коммитов и разрешенные типы:
import { defineConfig } from '@archoleat/commitlint-define-config'; export default defineConfig({ extends: ['@commitlint/config-conventional'], rules: { 'type-enum': [ 2, 'always', [ 'build', 'chore', 'ci', 'docs', 'feat', 'fix', 'perf', 'refactor', 'revert', 'spec', 'style', ], ], }, });
Плагин для defineConfig можно посмотреть здесь
В Husky есть баг при котором если коммит не проходит проверку, иногда изменения могут потеряться!
Индексация изменений:
git add .
Создание коммита:
git commit -m "feat(header): добавлена кнопка переключения темы"
pre-commit:
Запускается lint-staged, Prettier, ESLint и Stylelint исправляют ошибки в проиндексированных файлах, затем исправленные файлы повторно добавляются в индекс.
commit-msg:
commitlint проверяет соответствие заголовка коммита правилам Conventional Commits.
Результат:
Коммит успешно завершен, если все проверки пройдены, иначе коммит отклоняется с сообщением об ошибке.
Похожие категории:
Моё видение того, как должен выглядеть React компонент
104
7 мин.
Стандарт SSF-U определяет требования к семантике, доступности и логике работы фуллскрина
34
2 мин.
Стандарт SSA определяет требования к семантике, доступности и логике работы аккордеона
51
2 мин.
Разбор критических ошибок веб-дизайна. Почему слайдеры, автоплей и тяжёлые страницы снижают конверсию и позиции в Google и Yandex
46
1 мин.
Стандарт SSP определяет требования к семантике, доступности и логике работы пагинации
57
1 мин.
Стандарт SSPS определяет требования к структуре и наименованию файлов и папок в проекте
166
2 мин.