前言
随着前端技术的发展及大量开源项目的推出,npm 包的使用越来越广泛,npm 包版本管理也变得越来越重要。为了方便管理自己的项目及发布新版本,版本自动升级工具成为了必需品。而 bump-tag-version 这个 npm 包就是一款非常好用的版本自动升级工具。
什么是 bump-tag-version
bump-tag-version 是一款基于 Node.js 平台的 npm 包,用于为您的 npm 库自动升级版本号并同时为您的 Git 库打上标记。使用 bump-tag-version,您可以通过一行简单的命令,自动升级您的 npm 包版本并打上 Git 的标记。bump-tag-version 可以根据您提供的规则自动计算版本号,并为您的 npm 包添加新的 version 标记。
如何使用 bump-tag-version
使用 bump-tag-version 在您的项目中自动升级版本并打标记很容易。您只需要执行以下命令即可:
npm install bump-tag-version --save-dev
安装成功后,您可以运行以下命令:
npx bump-tag-version [options]
命令行参数
在运行 bump-tag-version 命令时,可以使用以下几个参数:
参数名 | 描述 |
---|---|
--help | 显示帮助信息 |
--version | 显示版本信息 |
--no-git | 不执行 Git 命令 |
--no-npm | 不执行 npm 命令 |
规则文件
要使用 bump-tag-version,您需要提供一个规则文件来定义版本号的计算方式。您可以将规则文件命名为 .bump.yml 并将其放在您的项目的根目录下。 文件包含以下几个属性:
参数名 | 描述 |
---|---|
major | 表示主版本号,做不兼容的 API 修改 |
minor | 表示次版本号,做向下兼容的功能性新增 |
patch | 表示补丁版本号,做向下兼容的问题修正 |
preid | 表示预发布名称 |
prerelease | 表示预发布标记 |
以下是一个 .bump.yml 的例子:
-- -------------------- ---- ------- ------ - ----------- --------- - ------ - ------ - ------ ------ - ----- ------ -- ----------- -----
实战
我们来看一个实际的例子,如何使用 bump-tag-version 进行版本管理。
我们先新建一个空的 npm 项目并安装 bump-tag-version。
mkdir my_project cd my_project npm init -y npm install bump-tag-version --save-dev
接着创建一个文件 .bump.yml 并添加以下规则:
-- -------------------- ---- ------- ------ - ----------- --------- - ------ - ------ - ------ ------ - ----- ------ -- ----------- -----
这个文件告诉 bump-tag-version,如何计算版本号。其中 minor 规则是指当您提交新的 "feat" 标记时,将自动为您升级次版本号;当您提交新的 "fix" 标记时,将自动为您升级补丁版本号。
接下来,让我们提交一个新的“feat” 标记并运行 bump-tag-version:
-- -------------------- ---- ------- --- ---- ----- ---------- --- --- ---------- --- ------ -- -------- ------- --- --- ------ --- ---- ------ ------ ------ --- -------- -- ------- ----- ------------ --- --- ------------ --- ------ -- ------ ----- --- -------- --- ---------------- --- ---- ------ ------ -------
在根目录运行这些命令后,我们可以看到,版本号已经自动升级到了 v1.1.0。
结束语
bump-tag-version 是一款非常好用的 npm 包版本管理工具,可以帮助我们轻松自动管理版本号,是开发中的必备工具。相信本文的介绍,您已经掌握了如何使用 bump-tag-version 将某一 npm 包升级。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600572cc81e8991b448e8fad