【问题标题】:What's the difference between tag and semver in the NPM DocNPM Doc中的tag和semver有什么区别
【发布时间】:2018-02-10 07:58:31
【问题描述】:

为了说明清楚,这里的“tag”是用来标记NPM中的某个包的,如this doc中提到的

  1. tag 是 semver 的别名吗?或其他标记版本的方法?
  2. 每个版本发布都需要标签吗?我知道有一个默认的“最新”,您可以指定一个新的。但是那里总是只有一个标签吗?
  3. 是否可以同时使用 use semver 和 tag 来指定版本? 这样做的语法是什么?例如:npm install moduleA@semver-tag
  4. 是否有一种简单的方法可以枚举某个特定的所有 semver 和标签 npm 包?

提前致谢!

【问题讨论】:

  • 吉他和歌曲的区别是一样的。前者是交付后者的工具。

标签: node.js npm-install node-modules


【解决方案1】:
  1. 如您发布的文档中所述,

标签是 semver 的补充

这意味着,您可以为您的包的用户提供更具体的详细信息。版本 1.9.1 是 beta 版本,稳定的,遗留的,正在开发中吗?它只是您的 semver 版本的附加字符串。

  1. 标签不是强制性的。如果你 npm view 一个包,你会看到有些版本没有与之相关的 dist-tag。

  2. 是的,您可以通过 dist-tag 安装。 npm install webpack@latest

  3. npm view <packagename>

【讨论】:

  • 我使用“npm view react”来查找版本'0.9.0-rc1',它是有效的semver还是标签?根据文档,我应该使用 semver 或标签来安装软件包,但不能同时使用两者,并且标签不应以数字开头。但是,我无法运行“npm i react@rc1”。为什么?
  • rc1 属于版本号。如果你运行npm view react,你会看到一个包含标签latestnextdev的“dist-tags”属性指向versions-数组。
  • 我终于发现“rc1”部分叫pre-release number。根据 semver 规范,语义版本不仅可以包括 [major.minor.patch] 部分,还可以包括预发布号部分。但是 npm doc 没有提到它。谢谢!
猜你喜欢
  • 1970-01-01
  • 2012-05-30
  • 1970-01-01
  • 2019-03-01
  • 1970-01-01
  • 2017-03-16
  • 2017-02-24
  • 2019-01-25
  • 2019-01-27
相关资源
最近更新 更多