NPM Doc 中的 tag 和 semver 有什么区别

What's the difference between tag and semver in the NPM Doc

说清楚,这里的“tag”是在this doc

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

提前致谢!

  1. 如您发布的文档所述,

Tags are a supplement to semver

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

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

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

  3. npm view <packagename>