如何生成NPM发布候选版本

时间:2018-06-13 20:58:22

标签: npm npm-publish npm-version

说我想生成预发布的NPM版本。

原来我有这个:

Processor

我试过了:

   "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 version patch似乎没有太大的区别。

所以我的问题是 - 是否有官方方法在命令行生成带有npm的alpha / beta版本?

npm version prepatch

类似的东西?

4 个答案:

答案 0 :(得分:7)

更新

从npm 6.3.0-next.0开始,您可以在使用--preid标记预发布时使用version

npm version prerelease --preid=next

NPM链接:https://docs.npmjs.com/cli/version

原始答案

可悲(有点讽刺)npm并不完全支持semver的所有功能!

您需要的是semver spec #9中名为pre-id的功能。我已经向npm提交了关于它的PR,但它被拒绝了。 https://github.com/npm/npm/pull/13794

preids基本上允许您指定预发布的ID,例如:

1.0.0-alpha or 1.0.0-alpha.1

福雷斯特以comment写这篇文章拒绝了这个提议:

  

经过一些进一步的考虑和团队内部的讨论,我确定这不是CLI团队将要进行的更改。使用预发行版本很棘手,而且这个功能已经足够了我认为它可以增加而不是减少预发布版本作为步枪的机会数量。

     

我对脚枪的关注与semver @ ^ 4中的决定有关,使预发布版本超出了匹配〜和^的范围。如果要改变semver的行为,那么有一种方法可以选择加入(然后在其中增加)给定的预发布标识符。在观察了React社区使用带有peerDependencies和其他相关套件的预发行版本的艰辛之后,很明显semver当前关于预发行版本的行为的用处非常有限。这意味着这种行为可能会发生变化。

     

尽管如此,我认为想要使用预发布版本的用户最好使用npmversion等第三方工具,或使用npm版本构建脚本" x.y.z-prealpha.2" (或任何适合您的用例)代替。谢谢你的时间,并为延迟道歉!

正如他所建议的那样,要使其正常工作,您应该使用支持完整semver版本控制的工具。我主要推荐semver包,可以在npm文档中找到https://docs.npmjs.com/misc/semver

答案 1 :(得分:1)

看起来像:

npm version prerelease

基本上就是我要找的东西,但是这并没有将alpha / beta / rc添加到版本中,只是这样做x.y.z-n

答案 2 :(得分:1)

您可以使用:

new Awesomplete(input, {
  list: [
   { label: "100", value: "Town 1" },
   { label: "200", value: "Town 2" }
  ],
  replace: function(suggestion) {
    this.input.value = suggestion.value; // You can assign label or value as per your need
  }
 });

结果: v1.0.0-rc.0

答案 3 :(得分:0)

npm version prerelease将生成0.0.0-x版本