如何将Git哈希写入(node's)package.json?

Seb*_*ald 9 development-environment package node.js gruntjs

有没有办法用git的HEAD哈希自动更新package.json(https://npmjs.org/doc/json.html)的版本号?我想version: 1.0.0+rev82e4b91cfe42cd86e9453b4987b9cc446566de6在项目的package.json文件中有类似的东西.在加号之前的Eveything是手动设置的,每次我提交时都会更新哈希值.

这可能吗?我在这个主题上找不到任何东西: - /

efl*_*lat 5

看来这可以直接完成,无需插件。npm version $(git describe)将从 package.json 中获取版本值git describe并更新版本值。

(我目前使用的是 npm 版本 3.10。)


Bra*_*don -2

什么时候自动?可能性是:

  1. 每次从机器环境运行构建时更新版本字段
  2. 每次运行任何构建时更新版本字段。
  3. 更新 git hook 中的版本字段以保持同步。就我个人而言,我会对当某些事情发生变化时执行更改的钩子感到紧张。这种策略风险最高,回报也最高。

如果您采用第一种或第二种方法,这当然取决于您使用的构建工具。如果您使用 grunt,请参阅 grunt 插件。我找不到任何满足您要求的 grunt 插件,但您可以相当轻松地创建一个。

http://gruntjs.com/plugins

如果您最终创建了一个,请告诉我,因为我也需要类似的过程:)

就我而言,我使用 SVN,但想要相同的模式。我想将 SVN 修订号作为我的内部版本号。

我的建议是将签入的文件中的内部版本号保留为空,并让您的构建环境为新的内部版本执行 git 克隆并更新内部版本号。然后构建的包总是有一些关于它们的信息,表明它们来自 git 提交。

我认为对于开发来说,你并不真正需要它,因为你总是可以询问 git 你签出了哪个版本。有一个 grunt-git 插件,你可以用它来确定 dev 中的版本。(也许 git show ?)