是否有npm版本预发布标识符?
有一个非常方便的命令。除了是否有npm版本预发布标识符?,npm,versioning,semantic-versioning,npm-cli,Npm,Versioning,Semantic Versioning,Npm Cli,有一个非常方便的命令。除了major、minor和patch等参数外,它还接受prerelease、prepatch等参数。 文档中说,这些命令按照功能工作 我有一个问题,这些pre命令 假设我目前的版本是v1.0.0 如果我运行npm version prerelease,它将把版本提升到v1.0.1-0 是否可以根据提供额外的预发布标识符 我希望像npm版本预发行版alpha这样的东西将版本升级到v1.0.1-alpha.0,但这不起作用。我最近一直在研究这个问题,看看是否有任何更新。。。但
major
、minor
和patch
等参数外,它还接受prerelease
、prepatch
等参数。文档中说,这些命令按照功能工作 我有一个问题,这些
pre
命令
假设我目前的版本是v1.0.0
如果我运行
npm version prerelease
,它将把版本提升到v1.0.1-0
是否可以根据提供额外的预发布标识符
我希望像npm版本预发行版alpha这样的东西将版本升级到
v1.0.1-alpha.0
,但这不起作用。我最近一直在研究这个问题,看看是否有任何更新。。。但事情似乎还是一样
否,npm版本命令不支持npm版本预发布标识符。您可以在此处看到团队的推理:
semver()不支持您尝试执行的操作,因此您可以使用如下命令获取版本:
semver <current version> -i prerelease --preid <prelease identifier>
npm version <resulting version from semver command>
$ npm version prerelease --preid=alpha
v0.1.1-alpha.0
$ npm version prerelease --preid=alpha
v0.1.1-alpha.1
$ npm version prerelease --preid=alpha
v0.1.1-alpha.2
将产生:
1.0.2-alpha.0
通过该结果,您可以将其传递给npm版本(例如在CI构建中),如下所示:
semver <current version> -i prerelease --preid <prelease identifier>
npm version <resulting version from semver command>
$ npm version prerelease --preid=alpha
v0.1.1-alpha.0
$ npm version prerelease --preid=alpha
v0.1.1-alpha.1
$ npm version prerelease --preid=alpha
v0.1.1-alpha.2
npm版本
另一种选择是使用语义发布(一个独立的项目):
这将根据提交消息自动执行语义版本控制,但我认为它只适用于github repo托管的模块,对此并不确定。与前面提到的另一个答案一样,npm不支持这一点,因为本文中提到的原因 但是您可以通过以下方式使用包和npm脚本实现相同的功能: 将类似以下内容添加到
package.json
"scripts": {
"beta-version-patch": "npm version $(semver $npm_package_version -i prerelease --preid beta)",
"beta-version-minor": "npm version $(semver $npm_package_version -i preminor --preid beta)",
"beta-version-major": "npm version $(semver $npm_package_version -i premajor --preid beta)",
"rc-version": "npm version $(semver $npm_package_version -i prerelease --preid rc)",
"final-release": "npm version $(semver $npm_package_version -i)"
}
并运行npm运行测试版补丁
为了更通用,您可以使用以下选项:
"scripts": {
"semver": "npm version $(semver $npm_package_version -i $release --preid $preid)"
}
并运行如下命令:
release=prerelease preid=alpha npm run semver
release=prerelease preid=beta npm run semver
release=premajor preid=alpha npm run semver
从npm 6.4.0开始您可以使用
npm版本
的--preid
选项,如下所示:
semver <current version> -i prerelease --preid <prelease identifier>
npm version <resulting version from semver command>
$ npm version prerelease --preid=alpha
v0.1.1-alpha.0
$ npm version prerelease --preid=alpha
v0.1.1-alpha.1
$ npm version prerelease --preid=alpha
v0.1.1-alpha.2
你找到解决办法了吗?不幸的是,还没有。我也在找类似的东西。现在我只写整个版本,比如npm 1.0.1-alpha.0版
,这比编辑package.json和手动标记提交要简单一些。试着用--preid-alpha
完成以下预发布,如果我理解正确的话,这应该会产生你想要的东西。@MondKin,按时间顺序则相反:)