首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >npm版本添加alpha后缀

npm版本添加alpha后缀
EN

Stack Overflow用户
提问于 2016-08-29 12:13:56
回答 2查看 20.9K关注 0票数 34

如何使用npm版本控制package.json版本以包含-alpha

运行npm version <new version>会增加package.json文件的版本,但是我想将-alpha后缀添加到版本中,但是我无法这样做,因为它不是在文档中说明的,而是由semver本身支持的。

实际结果:

代码语言:javascript
运行
复制
> npm version prerelease
> v0.2.1-1

预期结果:

代码语言:javascript
运行
复制
> v0.2.1-alpha
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-07-27 09:41:22

您不能自动设置0.2.1-alpha,但0.2.1-alpha.0是可能的。

npm支持--preid选项来指定预告片的前缀。它可以与pre*版本结合使用。

示例1.生成下一个主要版本的alpha:

代码语言:javascript
运行
复制
# 1.2.3 => 2.0.0-alpha.0
npm version premajor --preid alpha

示例2. Bump alpha到beta:

代码语言:javascript
运行
复制
# 2.0.0-alpha.0 => 2.0.0-beta.0
npm version prerelease --preid beta

一旦创建了预发布,就可以使用prerelease参数增加数字。

代码语言:javascript
运行
复制
# 2.0.0-beta.0 => 2.0.0-beta.1
npm version prerelease
票数 58
EN

Stack Overflow用户

发布于 2018-06-28 16:48:08

虽然-alpha和-beta是常见的预发布标记,但它们不是由SemVer定义的。-alpha.1、-alpha.2、-beta.1等也相当常见。规范将预发布标记定义为一系列点分隔的字母、数字或数字字符字段。SemVer规范在某些示例中使用alpha和beta,但规范没有定义它们。NPM没有办法知道你想使用什么标签,如果你不告诉它。它显然默认为数字预释放标记,这是有意义的,因为SemVer允许(-1,-2,-3提供所有必要的语义)。

NPM文档糟透了,幸运的是,我从未使用过NPM。见https://docs.npmjs.com/cli/version。特别是:

新版本参数应该是一个有效的义符字符串,是semver.inc的一个有效的第二个参数(一个补丁,次要,主要,预补丁,预小调,预大调,预释放),或者-git。

查看提供的链接(https://github.com/npm/node-semver#functions),它们似乎是指增加指定的版本字段。在package.json文件中的版本字符串中没有alpha标记的情况下,它会将缺失的数字预释放标记追加为-1,这很有意义。

我刚刚用以下方法验证了这个理论:

代码语言:javascript
运行
复制
> echo Test > test.txt
> npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sane defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
name: (packageTest)
version: (1.0.0) 0.1.0-alpha.0
description: Test package.
entry point: (index.js)
test command:
git repository:
keywords:
author:
license: (ISC)
About to write to D:\TMP\Joseph\packageTest\package.json:

{
  "name": "packageTest",
  "version": "0.1.0-alpha.0",
  "description": "Test package.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this ok? (yes)

> npm version prerelease
v0.1.0-alpha.1

> cat package.json
{
  "name": "packageTest",
  "version": "0.1.0-alpha.1",
  "description": "Test package.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

不出所料。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39206082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档