JavaScriptプロジェクトのバージョン管理を自動化する方法


遅かれ早かれ、すべての開発者は自分のソフトウェアをバージョン管理する必要があります.あなたがマニュアル更新バージョン、changelogs、およびタグがエラーと感情的な決定を起こしやすいことを知っている場合.
この記事では、あなたのバージョンを管理する簡単で自動化された方法を示しますconventional commiting 構造とヘルプstandard-version .

標準バージョンのインストール
パッケージのインストールから始めましょうnpm i standard-version -Dさて、次のスクリプトを追加してくださいpackage.json
{
  "scripts": {
    "release": "standard-version"
  }
}

動作方法
我々のパッケージは、我々に従う必要がありますConventional Commits Rules 倉庫で.これは、正しい構文を使用しなければならないことを意味します.
以下にその方法の概要を示します.

  • ちょっと固定するPATCH

  • Aの妙技MINOR

  • !角括弧接尾辞MAJOR
  • したがって、コミットはパターンに従わなければなりませんscope!: message !はMAJOR .
    feat: new reset password button` -> 0.1.0
    feat!: new reset password button` -> 1.0.0
    

    ワークフロー
    すべてが構成され、オートメーション化したバージョン管理のための基本ルールを理解しました.ワークフローの方法についての単純な視点を見てみましょう.
    機能ブランチの機能の開発
  • git add .
  • git commit -m "feat: created a reset password"
  • git push
  • マスターブランチにマージする
  • git merge origin/feature-branch
  • npm run standard-version - パッケージはコミット履歴を調べて、自動的にあなたのAPIバージョンをx . y . zに増やしています
  • git push —follow-tags origin master - これは、変更されたchangelogファイルとタグであなたのバンプを押している
  • そして、それはすべてです!あなたは、あなたの上で見ることができるはずですmaster 対応するバンプバージョンをChangeLogファイルで分岐し、すべてのタグにリンクします.

    コモンミス
    によるとsemver

    Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.


    これは意図的に実行するまでnpm run release -- --release-as major あなたのメジャーバージョン0からぶつかるが表示されません.yから1まで.この瞬間から、パッケージはその仕事をして、同様に主要なバージョンを破ります.

    結論
    に基づいてバンプバージョンconventional commiting 規則の慣例は、明示的なコミット履歴を持つために良い実行とみなされます.
    …の助けを得てstandard-version 私たちは、アーティファクトが生産にリリースされるたびに、自動的にバージョンとトラック変更をバンプすることができます.

    特別感謝https://unsplash.com/@csoref ヘッダのイメージについて:)