Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/npm/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何生成NPM发布候选版本_Npm_Npm Publish_Npm Version - Fatal编程技术网

如何生成NPM发布候选版本

如何生成NPM发布候选版本,npm,npm-publish,npm-version,Npm,Npm Publish,Npm Version,假设我想生成预发布的NPM版本 原来我有这个, "version": "0.0.1" 我试过: npm version prepatch npm version prepatch npm version preminor npm version preminor 这给了我这个: v0.0.2-0 v0.0.3-0 v0.1.0-0 v0.2.0-0 这些对我来说没有什么用处,因为它们总是增加实际的版本号,这意味着npm版本补丁和npm版本预补丁似乎没有多大区别 所以我的问题是-有没有

假设我想生成预发布的NPM版本

原来我有这个,

   "version": "0.0.1"
我试过:

npm version prepatch
npm version prepatch
npm version preminor
npm version preminor
这给了我这个:

v0.0.2-0
v0.0.3-0
v0.1.0-0
v0.2.0-0
这些对我来说没有什么用处,因为它们总是增加实际的版本号,这意味着
npm版本补丁
npm版本预补丁
似乎没有多大区别

所以我的问题是-有没有一种官方的方法在命令行中使用npm生成alpha/beta版本

npm version minor-alpha
npm version minor-beta
npm version minor-rc
类似的东西?

看起来像:


npm版本预发布

基本上就是我要找的,但这并没有在版本中添加alpha/beta/rc,它只是做了这个
x.y.z-n

更新 从npm
6.3.0-next.0
开始,您现在可以使用
--preid
在使用
版本
标记预发行版时使用

npm version prerelease --preid=next
NPM链接:


原始答案 遗憾的是(有点讽刺的是),npm并没有完全支持semver的所有功能

您需要的是一个名为pre id的功能,可以在中找到。我已经向npm提交了一份PR来修复它,但它被拒绝了

PreID基本上允许您为预发布指定id,例如:

1.0.0-alpha or 1.0.0-alpha.1
Forrest在以下书面形式中拒绝了该提议:

经过进一步的考虑和团队内部的讨论,我决定这不是CLI团队要实现的改变。使用预发布版本是一件棘手的事情,这个特性已经足够边缘化了,我认为它增加了,而不是减少了预发布版本成为一个步兵的机会

我对footguns的担忧与semver@^4中的一项决定有关,该决定使预发布版本超出了~和^的匹配范围。如果semver的行为发生改变,那么有一种方法选择(然后在其中增加)给定的预发布标识符可能更有意义。在观察了React社区在使用带PeerDependence的预发布版本和其他相关软件包套件方面的辛苦之后,很明显,semver当前在预发布版本方面的行为是非常有限的。这意味着这种行为很有可能改变

不过,就目前情况而言,我认为希望使用预发布版本的用户最好使用第三方工具,如npmversion,或者使用npm版本“x.y.z-prealpha.2”(或任何适合您的用例)构建脚本。谢谢你的时间,我对耽搁表示歉意


正如他所建议的,要想让这项工作正常进行,你应该使用一个支持完整版本控制的工具。我特别推荐在npm文档中找到的semver软件包,npm版本预发行版将生成
0.0.0-x
版本,您可以使用:

npm version prerelease --preid=rc
结果:
v1.0.0-rc.0

不接受有效的semver字符串。例如,
npm版本0.0.2-rc.0
您可以将更新移到答案的顶部,很难在长文本下看到它。@MondKin谢谢,更新了更详细的答案,并且可能重复了