2013-04-08 2 views
8

gitのHEADハッシュでpackage.json(https://npmjs.org/doc/json.html)のバージョン番号を自動的に更新する方法はありますか?私はversion: 1.0.0+rev82e4b91cfe42cd86e9453b4987b9cc446566de6のようなものをプロジェクトのpackage.jsonファイルの中に入れたいと思っています。プラス前のEveythingは手動で設定され、何かをコミットするたびにハッシュが更新されます。(ノードの)package.jsonにGitハッシュを書くには?

これは可能ですか?このトピックで何も見つかりませんでした: -/

答えて

-2

自動的にどの時点でですか?可能性があります:

  1. アップデートバージョンフィールドあなたはマシン環境
  2. アップデートバージョンフィールドは、任意のビルドを実行するたびにビルドを実行するたびに。
  3. gitフックのバージョンフィールドを同期して更新します。個人的には、何かが変わったときに変更を行うフックについては緊張しています。この戦略はリスクが最も高く、最高の報酬です。

最初または2番目の方法を使用する場合、使用するビルドツールによって異なります。 gruntを使用している場合は、gruntプラグインについてを参照してください。私はあなたが求めていることを行うどんな嫌なプラグインも見つけられませんが、あなたはかなり簡単にプラグインを作成することができます。

http://gruntjs.com/plugins

あなたは、私は同様のプロセスの必要性にも午前として私に知らせて:)

私の場合は、1を作成して終了した場合は、私はSVNを使用していますが、同じパターンにしたいです。ビルド番号としてSVNリビジョン番号を入れたい。

私のお勧めは、チェックインされたファイルにビルド番号を空白のままにし、ビルド環境で新しいビルドのgitクローンを作成し、ビルド番号を更新することです。そしてビルドされたパッケージには、それらが出てきたgit commitを示すものがあります。

私は開発のために、実際にそれを必要としないと思うのは、あなたがチェックアウトしたバージョンを常にgitに問い合わせることができるからです。あなたはおそらくdevのバージョンを把握するために使用できるgrunt-gitプラグインがあります。

+0

git describeが見つかりました。それは同様に有用かもしれません。これは、短縮されたsha1コミットIDと、最新のタグ以降のコミット数の両方を提供します。 https://www.kernel.org/pub/software/scm/git/docs/git-describe.html – Brandon

+0

なぜdownvoteですか? – Brandon

1

その一部はgit-describeで解決できますが、実際にはあなたのための包み込みプラグインがあります(https://github.com/mikaelkaron/grunt-git-describe/)。

手動で行う必要がありますが(現時点で)、実際には今のところ同様の問題がありますので、あなたと自分自身のためにハックしてみましょう。

私は上記のgrunt-git-describeの著者です。

+2

これは答えの代わりにあなたのプラグインの宣伝のような感じです。答えを出すには、実際の問題を解決するためにプラグインをどのように実装するのかをあなたの答えに示してください。 –

1

git rev-parse HEADは、ビルドを実行するたびにパッケージ内のバージョン番号に追加できる現在のヘッドブランチに最後のコミットを書き出します。

記録したいと思う追加のものに役立つかもしれない多くのgit rev-xxxコマンドがあります。

1

これはプラグインなしで直接行うことができるようです。 npm version $(git describe)git describeの値をとり、package.jsonのバージョンの値を更新します。

(現在はnpmバージョン3.10を使用しています)

関連する問題