如何让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
相关产品推荐
相关产品推荐

