Анатомия React компонента
Моё видение того, как должен выглядеть React компонент
421
7 мин.
Стандарт 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-configLint-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 компонент
421
7 мин.
Стандарт SST-A определяет требования к семантике, доступности и логике работы табов
62
6 мин.
Стандарт SSF-U определяет требования к семантике, доступности и логике работы фуллскрина
248
2 мин.
Стандарт SSA определяет требования к семантике, доступности и логике работы аккордеона
258
2 мин.
Разбор критических ошибок веб-дизайна. Почему слайдеры, автоплей и тяжёлые страницы снижают конверсию и позиции в Google и Yandex
232
1 мин.
Стандарт SSP определяет требования к семантике, доступности и логике работы пагинации
240
1 мин.