tim*_*der 16 versioning npm semantic-versioning npm-cli
有一个非常方便的npm version命令.除了喜欢争论major,minor而且patch它接受类似的参数prerelease,prepatch等等.
它说,该命令按照工作文档semver.inc的功能.
这些pre命令我有一个问题.
说我目前正在版本v1.0.0.
如果我运行npm version prerelease它会将版本提升到v1.0.1-0.
是否可以根据https://github.com/npm/node-semver#prerelease-identifiers为预发布标识符提供额外的agrument ?
我希望有类似的东西npm version prerelease alpha会碰到版本,v1.0.1-alpha.0但这不起作用.
Mon*_*Kin 30
从npm 6.4.0开始,您可以使用如下--preid选项npm version:
$ 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
Run Code Online (Sandbox Code Playgroud)
就像提到的其他答案一样,由于此评论中提到的原因,npm 不支持这一点
但是您可以使用semver包和 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)"
}
Run Code Online (Sandbox Code Playgroud)
并运行npm run beta-version-patch
为了更通用,您可以使用以下内容:
"scripts": {
"semver": "npm version $(semver $npm_package_version -i $release --preid $preid)"
}
Run Code Online (Sandbox Code Playgroud)
并运行如下命令:
release=prerelease preid=alpha npm run semver
release=prerelease preid=beta npm run semver
release=premajor preid=alpha npm run semver
Run Code Online (Sandbox Code Playgroud)
小智 5
我最近一直在看这个,看看是否有关于此事的任何更新……但似乎事情仍然是一样的。
不, npm version 命令不支持 npm 版本预发布标识符。你可以在这里看到团队的推理:https : //github.com/npm/npm/pull/12936#issuecomment-248153743
semver ( https://www.npmjs.com/package/semver ) 确实支持您尝试执行的操作,因此您可以使用如下命令获取版本:
semver <current version> -i prerelease --preid <prelease identifier>
Run Code Online (Sandbox Code Playgroud)
例如:
semver 1.0.1 -i prerelease --preid alpha
Run Code Online (Sandbox Code Playgroud)
将产生:
1.0.2-alpha.0
Run Code Online (Sandbox Code Playgroud)
有了这个结果,您可以将其传递给 npm 版本(例如在 CI 构建中),如下所示:
npm version <resulting version from semver command>
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用语义发布(一个独立项目):https : //github.com/semantic-release/semantic-release
这将根据提交消息自动进行语义版本控制,但我认为它仅适用于 github repo 托管模块,对此不确定。
| 归档时间: |
|
| 查看次数: |
5559 次 |
| 最近记录: |