目 录CONTENT

文章目录

npm 相关技术及规范(如:npm 包发布和安装)

邱少羽梦
2024-06-26 / 0 评论 / 0 点赞 / 544 阅读 / 9875 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2024-06-28,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

npm 包发布

  • 版本标签

    在 npm 中,版本标签(tags)用于区分不同的发布版本,例如稳定版本、beta 版本、alpha 版本等。

    正常流程:alpha 版本 => beta 版本 => rc 版本 => 稳定版本

    以下是一些常见的版本标签及其用途:

    • latest:默认标签,表示最新的稳定版本。
      • 用户通过 npm install your-package 安装时,会默认安装这个版本
      • 发布:正常 npm 发布 X.Y.Z 版本号即可【可以通过命令修改 latest 指向的版本:npm dist-tag add your-package@X.Y.Z latest,正常情况下不会需要这种操作 】
      • 适用场景:用于生产环境,确保用户获得最稳定、可靠的版本。
      • 适用环境:适用于需要稳定性和可靠性的生产环境。
    • beta:表示 beta 版本,通常用于测试新功能或更新,但还不是稳定版本。
      • 用户可以通过 npm install your-package@X.Y.Z-beta.xxx 来安装这个版本
      • 发布: npm 发布 X.Y.Z-beta.xxx 版本号,发布时一定要指定 tag 为 beta,防止其覆盖 latest 标签,即: npm publish --tag beta
      • 适用场景:用于测试新功能和改进,提供早期用户反馈。
      • 适用环境:适用于测试环境和愿意尝试新功能的用户群体。
    • alpha:表示 alpha 版本,通常用于更早期的测试,可能包含更多未完成或不稳定的功能。
      • 用户可以通过 npm install your-package@X.Y.Z-alpha.xxx 来安装这个版本
      • 发布: npm 发布 X.Y.Z-alpha.xxx 版本号,发布时一定要指定 tag 为 alpha,防止其覆盖 latest 标签,即: npm publish --tag alpha
      • 适用场景:用于最早期的功能测试,收集开发者的初步反馈。
      • 适用环境:适用于开发环境和内部测试,不建议用于生产环境。
    • next:表示下一个即将发布的版本,通常用于预发布测试。
      • 用户可以通过 npm install your-package@X.Y.Z-next.xxx 来安装这个版本
      • 发布: npm 发布 X.Y.Z-next.xxx 版本号,发布时一定要指定 tag 为 next,防止其覆盖 latest 标签,即: npm publish --tag next
      • 适用场景:用于预发布测试,验证新版本的稳定性和兼容性。
      • 适用环境:适用于测试环境和准备升级到最新版本的用户。
    • rc(Release Candidate):表示候选发布版本,接近稳定版本,经过进一步测试后可能会成为正式版本。
      • 用户可以通过 npm install your-package@X.Y.Z-rc.xxx 来安装这个版本
      • 发布: npm 发布 X.Y.Z-rc.xxx 版本号,发布时一定要指定 tag 为 rc,防止其覆盖 latest 标签,即: npm publish --tag rc
      • 适用场景:用于最终测试阶段,确保没有严重问题后发布为正式版本。
      • 适用环境:适用于生产环境的最终测试阶段,适合需要提前验证即将发布的稳定版本的用户。
  • 软件版本控制(patch、minor 和 major 是三个常用的版本号级别)

    总结

    • Patch:修复 bug,小改动,版本号最后一位增加。
    • Minor:增加新功能,向后兼容,版本号中间一位增加。
    • Major:重大更新,可能不向后兼容,版本号第一位增加。
    • Patch(补丁版本):

      版本上线后更新补丁修复也是增加此版本号

      • 表示:修复了 bug 或进行了小的改进,不影响向后兼容性。
      • 版本号格式:X.Y.Z 中的 Z
      • 示例:从 1.0.01.0.1
      • 适用场景:只修复了某个 bug 或做了小的、无破坏性的改动。
      • 使用:npm version patch
    • Minor(次要版本):

      • 表示:添加了新功能,但保持向后兼容性,不影响现有功能的使用。
      • 版本号格式:X.Y.Z 中的 Y
      • 示例:从 1.0.01.1.0
      • 适用场景:增加了新的功能或特性,但没有破坏现有的 API 或功能。
      • 使用:npm version minor
    • Major(主要版本):

      • 表示:进行了重大更改,可能会破坏向后兼容性。
      • 版本号格式:X.Y.Z 中的 X
      • 示例:从 1.0.02.0.0
      • 适用场景:对软件进行了重大改进或重构,可能会引入破坏性的更改,需要用户做出相应的调整。
      • 使用:npm version major
  • npm version 命令

    npm version 命令用于管理和更新 npm 包的版本号,并执行与版本控制相关的操作。

    格式:npm version [ | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=] | from-git]

    以下是 npm version 命令的所有参数及其用途:

    • 参数说明

      1. newversion

        • 作用:指定一个新的版本号,直接将包版本号更新为这个值。
        • 示例npm version 2.0.0
      2. major

        • 作用:将主版本号(X.Y.Z 中的 X)增加 1,并将次版本号 Y 和补丁版本号 Z 重置为 0。
        • 示例:从 1.0.0 更新到 2.0.0
        • 命令npm version major
      3. minor

        • 作用:将次版本号(X.Y.Z 中的 Y)增加 1,并将补丁版本号 Z 重置为 0。
        • 示例:从 1.0.0 更新到 1.1.0
        • 命令npm version minor
      4. patch

        • 作用:将补丁版本号(X.Y.Z 中的 Z)增加 1。
        • 示例:从 1.0.0 更新到 1.0.1
        • 命令npm version patch
      5. premajor

        • 作用:将主版本号 X 增加 1,并将次版本号 Y 和补丁版本号 Z 重置为 0,并添加预发布标签。
        • 示例:从 1.0.0 更新到 2.0.0-0
        • 命令npm version premajor
      6. preminor

        • 作用:将次版本号 Y 增加 1,并将补丁版本号 Z 重置为 0,并添加预发布标签。
        • 示例:从 1.0.0 更新到 1.1.0-0
        • 命令npm version preminor
      7. prepatch

        • 作用:将补丁版本号 Z 增加 1,并添加预发布标签。
        • 示例:从 1.0.0 更新到 1.0.1-0
        • 命令npm version prepatch
      8. prerelease

      • 作用:增加预发布版本号。

      • 示例:从 1.0.0-0 更新到 1.0.0-11.0.0-11.0.0-2

      • 命令npm version prerelease

        • 额外参数:--preid=<prerelease-id>,用于指定预发布标签的标识,如alphabeta等。
      • 示例npm version prerelease --preid=beta 会将版本号更新为 1.0.0-beta.0

    1. from-git
      • 作用:从现有的 Git 标签中读取版本号,并将其应用到 package.json 中。
      • 命令npm version from-git
  • 其他选项

    1. --no-git-tag-version

      • 作用:更新 package.json 文件中的版本号,但不创建 Git 标签。
      • 示例npm version patch --no-git-tag-version
    2. --no-commit-hooks

      • 作用:跳过 Git 提交钩子。
      • 示例npm version patch --no-commit-hooks
    3. --sign-git-tag

      • 作用:使用 GPG 签名 Git 标签。
      • 示例npm version patch --sign-git-tag
    4. -m or --message

      • 作用:为 Git 提交指定自定义消息。
      • 示例npm version patch -m "Upgrade to %s for bug fixes"
  • 总结

    npm version 命令不仅可以更新版本号,还可以自动创建 Git 提交和标签。使用这些参数和选项,可以灵活地管理和控制 npm 包的版本更新过程。

    npm version 命令在更新版本号时会执行以下操作:

    • 更新 package.json 中的版本号。
    • 提交更改到 Git 仓库。
    • 创建一个新的 Git 标签。

npm 包安装

  • package.json 安装 “your-package”:"^X.Y.Z-beta.xxx" 和 “your-package”:"X.Y.Z-beta.xxx" 区别

    • "your-package": "X.Y.Z-beta.xxx"

      这种格式表示精确的版本号。当你使用这种格式时,npm 会安装或更新到确切的版本 X.Y.Z-beta.xxx,不会安装或更新到其他版本。

      {
        "dependencies": {
          "your-package": "X.Y.Z-beta.xxx"
        }
      }
      
    • "your-package": "^X.Y.Z-beta.xxx"

      这种格式使用了 ^ 符号,表示允许安装或更新到兼容的版本。具体来说,^ 符号允许安装或更新到主版本号不变的最新版本。对于 X.Y.Z-beta.xxx,这意味着可以安装或更新到 X.Y+n.Z+m 范围内的最新稳定版本,但不会更新到 (X+1).0.0 或更高版本。

      {
        "dependencies": {
          "your-package": "^X.Y.Z-beta.xxx"
        }
      }
      
    • "your-package": "~X.Y.Z-beta.xxx"

      这种格式使用了 ~ 符号,表示允许安装或更新到次版本号不变的最新版本。具体来说,~ 符号允许安装或更新到主版本号和次版本号不变的最新版本。对于 X.Y.Z-beta.xxx,这意味着可以安装或更新到 X.Y.Z+n 范围内的最新版本,但不会更新到 X.Y+1.0.0 或更高版本。

      {
        "dependencies": {
          "your-package": "~X.Y.Z-beta.xxx"
        }
      }
      
    • 举例

      版本号列表
      1.0.1-beta.1
      1.0.1
      1.0.1-beta.3
      1.0.2
      1.0.3-beta.1
      1.0.3-beta.2
      1.0.4-beta.1
      1.0.4
      1.1.0-beta.1
      1.1.3
      1.1.4-beta.1
      2.0.0-beta.1
      
      使用 "your-package": "1.0.3-beta.1"
      npm 只会安装或更新到 1.0.3-beta.1,不会安装或更新到其他版本。
      {
        "dependencies": {
          "your-package": "1.0.3-beta.1"
        }
      }
      
      使用 "your-package": "^1.0.3-beta.1"
      npm 可以安装或更新到 1.0.3-beta.1、1.0.3-beta.2、1.0.4-beta.1、1.0.4、1.1.0-beta.1 和 1.1.3 和 1.1.4-beta.1,因为这些版本都在 1.Y.Z 范围内。但不会安装或更新到 2.0.0-beta.1,因为它的主版本号已经变为 2。
      ⚠️注意:如果范围内有稳定版本,则会安装或更新到最新的稳定版本,即:^1.0.3-beta.1 最终安装的是 1.1.3
      {
        "dependencies": {
          "your-package": "^1.0.3-beta.1"
        }
      }
      
      使用 "your-package": "~1.0.3-beta.1"
      npm 可以安装或更新到 1.0.3-beta.1、1.0.3-beta.2、1.0.4-beta.1、1.0.4,因为这些版本都在 1.0.Z 范围内。,但不会安装或更新到 1.1.0-beta.1 及更高版本,因为它们超出了次版本号范围。
      {
        "dependencies": {
          "your-package": "~1.0.3-beta.1"
        }
      }
      
      总结
      "your-package": "1.0.3-beta.1" 表示精确的版本号,不会安装或更新到其他版本。
      "your-package": "^1.0.3-beta.1" 表示允许安装或更新到主版本号不变的最新版本。
      "your-package": "~1.0.3-beta.1" 表示允许安装或更新到次版本号不变的最新版本。
      选择哪种格式取决于你对依赖项版本控制的需求。如果你希望确保使用确切的版本,使用精确版本号;如果你希望允许一定范围内的更新,使用 ^ 或 ~ 符号。
      
0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin
  3. QQ打赏

    qrcode qq

评论区