首页 > 解决方案 > npm publish 使用 git 信息而不是 package.json 中的版本

问题描述

我正在尝试根据 git 信息找到发布 npm 人工制品的解决方案。

我查看了npm versionrelease-it,但这些工具自动执行 git 操作(提交/推送)以在 npm artefact 版本和 git 之间建立链接,它不会从 git 获取信息。

我想发布带有 git 源标识的 npm artefact,类似于git describe --tags --always. 像这样可以轻松地建立 git/npm 之间的链接,并且唯一的 git 操作是标记,持续集成管道可以通过npm publish.

git-tag-version似乎是工作的一部分,但没有与人工制品版本建立联系。

我可能会尝试以这种方式进行,但也许 npm 中有一些功能可以更轻松地做到这一点?

标签: gitnpmcontinuous-integrationnpm-publish

解决方案


npm version from-git似乎离我喜欢做的事情不远,除了:

  • 它需要一个带注释的标签
  • 它提交更新的 package.json
  • 它没有不同的标识仍然最新的标签保持不变

所以最后我使用了:

npm config set git-tag-version=false 
npm version $(git describe --tags)
npm publish

这不会提交包 json 修改并允许使用轻量级标签


推荐阅读