【问题标题】:NPM package versioningNPM 包版本控制
【发布时间】:2022-01-31 03:15:29
【问题描述】:

我在 npm 上阅读:

为了帮助依赖您的代码的开发人员,我们建议您从 1.0.0 开始您的包版本并递增 as follows:

假设包在现实世界中的实际版本控制方式符合上述建议;当他们使用模棱两可的词“递增”时,他们的意思是推荐:

  1. 下一个版本的版本为 1.0.1、1.1.0 或 2.0.0
  2. 下一个版本的版本高于 1.0.0(例如,甚至 1.0.9)

相关示例:

您已在 npm 上以 v1.0.0 发布了“your-package”
你处理它,重构代码,修复一堆错误并将最后一次提交标记为 v1.0.1
然后你注意到一个严重的错误,在修复它之后,你放了一个 v1.0.2 标签

现在您决定发布一个版本,如果您将该版本发布为 v1.0.2(从未发布过 v1.0.1),您是否会违反 npm 的建议?

【问题讨论】:

    标签: git npm release versioning


    【解决方案1】:

    一般规则是您发布的版本应该使用这种方案,称为语义版本控制。如果您在存储库中发布了公共 v1.0.1 版本,即使您尚未将其发布到 npm,那么您应该发布下一个错误修复版本 v1.0.2。你绝对不应该将你标记的 v1.0.2 版本作为 v1.0.1 上传到 npm,因为这会引起很多混乱。

    但是,如果没有令人信服的理由,您应该尽量避免在发布方式上出现空白。有时会出于某种原因发生这种情况,例如,由于 CI 错误,但总的来说,您应该尽量避免它。

    【讨论】:

      【解决方案2】:

      嘿,您需要阅读 semantic versioning 当他们说“增加”版本号时所指的内容:

      https://semver.org/

      基本形式的语义版本控制是一种告诉您如何增加版本编号的格式。

      MAJOR version when you make incompatible API changes,
      
      MINOR version when you add functionality in a backwards compatible manner, and
      
      PATCH version when you make backwards compatible bug fixes.
      

      看看我发布的文档 :)

      【讨论】:

      • 非常感谢您提供的 semver 资源!
      • 臭兄弟!我的回答更详细,并且链接到文档,你投票“他的”是正确的:/
      • 只是虽然我知道语义化版本控制,但我仍然对“递增”是否是严格意义上的意思存在疑问。即使在阅读了您提供的不错的手册页之后,我仍然有疑问,bk2204 的答案清除了。祝福
      猜你喜欢
      • 2012-01-09
      • 2019-08-22
      • 2019-04-19
      • 2022-12-19
      • 2014-10-17
      • 1970-01-01
      • 2018-08-22
      • 2018-08-08
      • 2014-02-14
      相关资源
      最近更新 更多