You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让npm version from-git保留预发布版本信息?

解决npm version from-git丢失预发布版本信息的问题

问题确认

npm version from-git命令在处理带预发布后缀的Git标签(如v1.5.0-rc.1)时,会自动剥离预发布部分,仅保留主版本号(如1.5.0),这是当前npm版本的默认行为,暂无原生配置可修改此逻辑。

解决方案:通过Shell脚本提取完整标签版本

直接从Git中提取完整标签版本,去掉前缀v后传入npm version命令,即可完整保留预发布信息。

通用Shell脚本实现

# 获取当前最新Git标签并去除前缀v
TAG_VERSION=$(git describe --tags --abbrev=0 | sed 's/^v//')
# 执行npm version命令,传入完整版本号
npm --allow-same-version --no-git-tag-version version "$TAG_VERSION"

CI环境优化(以GitHub Actions为例)

若CI环境提供了标签相关的环境变量(如GitHub Actions的GITHUB_REF_NAME),可直接使用变量简化操作:

npm --allow-same-version --no-git-tag-version version "${GITHUB_REF_NAME#v}"

${GITHUB_REF_NAME#v}通过Shell参数展开语法自动去除标签开头的v前缀。

说明

尽管期望npm原生支持预发布标签的解析,但目前该场景下,通过脚本提取完整标签版本是最可靠的解决方式,能确保package.json中的版本与Git标签完全一致。

内容的提问来源于stack exchange,提问作者Arno Moonen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 03:27:05