npm 包 @commitlint/test 使用教程

在软件开发过程中,代码的版本控制和管理是必不可少的,而 commit message(提交信息)是版本控制中至关重要的标记。一个好的 commit message 可以帮助开发者更好地理解代码的变化,更好地进行版本控制。而 @commitlint/test 就是一个帮助开发者规范 commit message 的 npm 包。

@commitlint/test 简介

@commitlint/test 是一个轻量、可扩展的 commit message 校验工具,它通过配置 commit message 的规则,实现对 commit message 进行校验。它的优点在于:

  • 适用于大部分的项目,可根据项目需求进行定制
  • 提供了一套默认规则
  • 支持多语言
  • 可与常见的版本控制系统(如 Git、SVN)集成

安装与配置

安装

在终端中输入以下命令进行安装:

- --- - -- ----------------

配置

安装完成后,新建一个 .commitlintrc.js 文件,用于配置 commit message 的规则。其中,rules 字段是最重要的部分,通过它来指定 commit message 的规则。

-------------- - -
  -------- ------------------------------------
  ------ -
    ------------ -
      --
      ---------
      -
        -------
        ------
        -------
        --------
        -----------
        -------
        --------
        ---------
        -------
        --------
        ----
      -
    --
    -------------------- --- --------- -----
    ------------- --- --------- --------------
    --------------- --- --------- -----------------
    ------------------------- --- --------- ----
  -
--

上面的代码是一个常见的 commitlint 配置文件,它的意思是:

  • @commitlint/config-conventional 为基础配置
  • 指定 type-enumheader-max-lengthscope-casesubject-casefooter-max-line-length 这 5 个规则
  • type-enum 规则指定 commit message 的类型必须为 featfixdocsstylerefactortestchorerevertperfbuildci 中的一种
  • header-max-length 规则指定 commit message 的头部长度不得超过 100 个字符
  • scope-case 规则指定 commit message 的 scope 必须为小写字母
  • subject-case 规则指定 commit message 的内容必须遵循 sentence-case 的格式
  • footer-max-line-length 规则指定 commit message 的底部长度不得超过 100 个字符

规则可根据自己项目的需求而定制,对于已有配置文件源的项目,也可直接继承,具体请参考 commitlint 的官方文档

使用

使用 @commitlint/test 的方式有很多种,这里介绍三种比较常用的方式。

在 git commit 时调用

在 git commit 前加上 commit-msg 钩子来调用 @commitlint/test:

---------- -
  ------------ ----------- -- -----------------
--

在提交前进行校验

使用 npm run commit 命令进行校验,但需要先安装 commitizencz-conventional-changelog

- --- ------- -- ---------- -------------------------

然后在 package.json 文件中添加以下代码:

---------- -
  --------- ----
--
--------- -
  ------------- -
    ------- ---------------------------
  -
-

执行 npm run commit 命令后,会自动生成选择 commit message 类型、提交代码内容、选择文件变更的步骤,帮助 commit message 更符合规范。

在提交代码时使用

对于不能在 submit 前进行校验的情况,比如在 Webpack 的 pre-commit 钩子中的处理,可以使用以下代码:

----- - ---- - - ----------------------------

----- ------- - ------- ---------
----- ------ - - -- --- -- --

------------- ------------------- -- -
  ----- ------- - --------------
  -- ------- -
    ---------------------
    ----------------
  -
  ------------------- ------- -- --------
  ----------------
---

当 commit message 不符合规范时,lint 函数会返回错误信息,否则就返回 null

示例

下面就是一个符合规范的 commit message:

----- -----

------------- --- --

------ ----

其中,feat 表示添加了新功能;冒号后面是 commit message 的内容,内容以“摘要+空行+详细说明”形式呈现;最后则是相关的 issue 编号。

结论

通过本文的介绍,你已经了解到了 @commitlint/test 的基本使用方式和配置方法,以及一些常见的 commit message 规范。使用 commit message 校验工具,能够使你的团队更加高效地进行版本控制和代码管理。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/94255


猜你喜欢

  • npm 包 allons-y-express 使用教程

    在实现 Web 应用程序时,Node.js 与 Express.js 是一个极好的框架组合。Node.js 提供的异步 I/O 能力以及 Express.js 提供的路由和中间件模型使得构建 Web ...

    5 年前
  • npm 包 flip-webpack-chain 使用教程

    简介 flip-webpack-chain 是一种可以帮助开发者更加高效地进行 webpack 配置的 npm 包。它通过提供链式调用 API 的方式,让人们可以非常方便地定义和修改 webpack ...

    5 年前
  • npm 包 flip-neutrino 使用教程

    简介 flip-neutrino 是一个基于 JavaScript 的 npm 包,用于在前端网页中实现图像翻转的效果。该 npm 包简单易用,支持多种翻转模式和用户自定义配置,可以有效提高网页的交互...

    5 年前
  • npm 包 childparent 使用教程

    在前端开发中,我们经常需要处理父子组件之间的通信。为了简化这个过程,我们可以使用 npm 包 childparent。本文将介绍 npm 包 childparent 的使用方法和示例代码,让你轻松处理...

    5 年前
  • npm 包 assert-element 使用教程

    assert-element 是一个用于在前端测试中断言 HTML 元素行为的 npm 包。该包提供了一些方便的方法来实现元素的断言,从而保证前端代码在正确的条件下运行。

    5 年前
  • npm 包 magic-virtual-element 使用教程

    筆者:Annabelle 在前端开发中,常常需要用到虚拟 DOM,解决了我们在交互性和性能优化上的问题。而 magic-virtual-element 是一个很好的 npm 包,它都提供了强大的虚...

    5 年前
  • npm 包:clean-query 使用教程

    当我们使用 jQuery 来操作 DOM 元素时,经常需要使用到一些查询字符串(query string)来找到我们需要的元素。但是有时候,这些查询字符串里还会包含一些“干扰项”,比如一些条目是空的、...

    5 年前
  • npm包 @cfware/queue_log-mysql 使用教程

    在前端开发过程中,我们经常需要处理日志相关的事务。为了方便管理,我们可以将日志存储到MySQL数据库中。 npm包 @cfware/queue_log-mysql 提供了一种便捷的处理MySQL队列日...

    5 年前
  • npm 包 @box/cli 使用教程

    前言 随着前端技术的飞速发展,我们需要掌握越来越多的领域知识,并且从中挑选出优秀的工具来提高我们的开发效率。本文将介绍一个基于 npm 包 @box/cli,用于快速构建前端应用的工具。

    5 年前
  • npm 包 @beardicus/line-us 使用教程

    介绍 @beardicus/line-us 是一个可以控制 Line-us 机器人的 npm 包。Line-us 是一款连接手机手机和机器人的机器,可以通过蓝牙实现远程控制。

    5 年前
  • npm 包 @aqm/queuelogger 使用教程

    当我们开发前端应用的时候,经常需要记录一些调试信息,以便在出现问题时快速定位问题。在这个过程中,console.log 是最常用的打印方式。但是,随着应用变得越来越复杂,我们很容易产生大量的打印信息,...

    5 年前
  • npm 包 p-timeout 使用教程

    引言 在前端开发中,我们经常会遇到需要设置超时的情况。如果没有超时机制的支持,一旦连接或请求某些资源的时间超过了一定的时间,就会导致程序出现假死的情况,这极大的影响了应用的用户体验。

    5 年前
  • npm 包 fuzzy-filter 使用教程

    前置知识 为了正常使用 fuzzy-filter,你需要对以下技术有一定了解: JavaScript 基础语法 Node.js 环境 NPM 包管理工具 什么是 fuzzy-filter fuzz...

    5 年前
  • npm 包 breach_module 使用教程

    前言 如果你是一名前端开发者,你一定知道 npm,这个用于 Node.js 包管理的工具已经成为前端开发必不可少的一部分。npm 可以让我们轻松地管理各种开源项目和工具,然后在我们的项目中使用这些工具...

    5 年前
  • npm 包 @ansonhkg/utils 使用教程

    前言 在前端开发中,我们常常需要使用各种工具库和插件,这些工具库和插件的使用可以大大提高我们的开发效率。而 npm 是前端开发中最常用的工具库包管理工具之一,而 @ansonhkg/utils 则是一...

    5 年前
  • npm 包 @andywer/babel-traverse-dctypes 使用教程

    简介 @andywer/babel-traverse-dctypes 是一款适用于 Babel 的插件,它允许你在编译过程中获取 AST 中变量的类型信息。这款插件是由 Andy Werth 编写并维...

    5 年前
  • npm 包 @uirouter/angularjs 使用教程

    @uirouter/angularjs 是一个 AngularJS 的路由框架,是原生 ngRoute 的替代品。它提供了更加灵活和强大的路由功能,并且易于使用和扩展,已经成为众多 AngularJS...

    5 年前
  • npm 包 angular-loader 使用教程

    在 Angular 应用开发中,我们经常需要加载一些其它的 JavaScript 库和组件,例如 jQuery 和 Bootstrap 等。为了方便地管理这些库和组件,我们可以使用 npm 包管理工具...

    5 年前
  • npm 包 @104corp/espack 使用教程

    什么是 @104corp/espack @104corp/espack 是一个基于 webpack 的前端打包工具,可用于打包 JavaScript,CSS,图片等资源文件,并且支持多页面和单页面的打...

    5 年前
  • npm 包 @babel/plugin-proposal-unicode-property-regex 使用教程

    什么是 @babel/plugin-proposal-unicode-property-regex @babel/plugin-proposal-unicode-property-regex 是一个 ...

    5 年前

相关推荐

    暂无文章