SSG - Gitの統一標準

SSG - Gitの統一標準

48

6 分。

定義

SSG標準は、Gitのセマンティクス、アクセシビリティ、および動作ロジックに関する要件を規定しています。

標準的なコミット - コミットの構成

コミットメッセージは、以下の構成に従う必要があります:

<タイプ>([適用範囲]): <概要>

[コミット本文]

[フッター]

ヘッダー - 必須項目

タイプ - コミットの分類:

タイプ目的
feat新しい機能
fixバグ修正
docsドキュメントの変更
styleロジックを伴わないスタイルの変更
refactor新しい機能を伴わないリファクタリング
perfパフォーマンスの向上
test (spec)テスト
chore補助タスク
buildビルド/依存関係の変更
ciCI/CDスクリプト
revert前回のコミットのロールバック

適用範囲 はオプションで、プロジェクトのどの部分が影響を受けるかを示します(例:uiapiauth):

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 の設定

lint-staged は、インデックスに登録された変更のみをチェックします:

export default {
  '*': 'prettier --write',
  'src/**/*.{tsx,ts}': 'eslint --fix',
  'src/**/*.scss': 'stylelint --fix',
};

Commitlintの設定

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用のプラグインはこちらから確認できます

Gitフックの設定(Husky)

フックコマンド用途
pre-commitnpm run lint-stagedコミット前のコードのフォーマットと修正
commit-msgnpm run commitlint --editConventional Commits への準拠チェック

Huskyには、コミットがチェックに合格しなかった場合、変更内容が失われることがあるバグがあります!

コミットプロセスの概要

  • 変更のステージング:

    git add .
    
  • コミットの作成:

    git commit -m "feat(header): テーマ切り替えボタンを追加"
    
  • pre-commit:

    lint-staged が実行され、PrettierESLintStylelint がインデックスに登録されたファイルのエラーを修正した後、修正されたファイルが再度インデックスに追加されます。

  • commit-msg:

    commitlint は、コミットヘッダーが Conventional Commits のルールに準拠しているかどうかを確認します。

  • 結果:

    すべてのチェックに合格した場合、コミットは正常に完了します。そうでない場合は、エラーメッセージとともにコミットが却下されます。

関連記事

  • Reactコンポーネントの構造

    各Reactコンポーネントがどのような外観であるべきか、私の考え

    103

    12 分。

  • SSF-U - フルスクリーン表示の統一規格

    SSF-U規格は、フルスクリーン表示のセマンティクス、アクセシビリティ、および動作ロジックに関する要件を規定しています

    33

    3 分。

  • SSA - アコーディオンの統一標準

    SSA規格は、アコーディオンのセマンティクス、アクセシビリティ、および動作ロジックに関する要件を定めています

    50

    4 分。

  • ウェブサイトにおける悪い慣行

    ウェブデザインにおける致命的なミスの分析。スライダー、自動再生、重いページがコンバージョン率やGoogle・Yandexでの検索順位を低下させる理由

    46

    2 分。

  • SSP - ページネーションの統一規格

    SSP規格は、ページネーションのセマンティクス、アクセシビリティ、および動作ロジックに関する要件を規定しています

    56

    3 分。

  • SSPS - プロジェクト構造の統一基準

    SSPS標準は、プロジェクト内のファイルおよびフォルダの構造と命名に関する要件を規定しています

    165

    3 分。

  • すべての記事

ご連絡ください