npm 包 @marionebl/conventional-commits-parser 使用教程

简介

@marionebl/conventional-commits-parser 是一个用于解析 Conventional Commits 格式的 NPM 包。该格式是一种规范用于记录代码的变更,是一种轻量级的标准化项目结构。使用该包可以将提交信息解析成 JSON 格式,方便在项目中实现自定义合规性规则。

安装

使用 npm 可以轻松安装该包:

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

使用

解析提交信息

首先我们需要引入 @marionebl/conventional-commits-parser:

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

我们来假设有一个提交信息如下所示:

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

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

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

我们可以使用该包进行解析,将其变成 JSON 格式:

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

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

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

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

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

可以看到,解析出来的结果中包含了提交信息的各个部分。

自定义规则

我们可以自定义规则来指定提交信息需要符合哪些规则才能通过验证。

headerMaxLength 为例,该规则定义了 type(scope)subject 这个字符串的最大长度。如果提交信息超过该长度,就会出现错误。

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

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

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

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

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

在上面的例子中,由于 headerMaxLength 限制了提交信息的长度,运行以上代码时你将会得到一个错误:

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

钩子

我们还可以通过钩子来自定义处理提交信息的逻辑。

noteKeywords 为例,该规则定义了表注可以使用的关键字。我们可以使用钩子,在提交信息解析之前将这些关键字替换为我们自定义的内容。

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

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

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

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

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

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

可以看到,在 transform 钩子函数中,我们设定了让所有表注的标题变为 "Related ",并在表注内容前添加 "-",我们还将参考的操作内容统一转换成大写形式。最终我们成功解析了提交信息并进行了自定义处理。

结论

通过使用 @marionebl/conventional-commits-parser,我们可以很方便的实现提交信息的解析、自定义规则与自定义处理,来达到项目规范性的要求。

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


猜你喜欢

  • npm包Teakettle使用教程

    简介 Teakettle是一个基于Webpack的前端模块化工具。它可以帮助我们打包、优化和管理前端代码,提高前端开发效率。 安装 Teakettle 安装 Teakettle 只需要在终端执行以下命...

    3 年前
  • npm 包 tsl-system-core 使用教程

    简介 tsl-system-core 是一个基于 TypeScript 的前端开发常用工具集合,包括但不限于常用类型、数组、对象、日期、时间、字符串等等工具函数。同时它支持 Tree Shaking,...

    3 年前
  • npm 包 emojione-slim 使用教程

    什么是 emojione-slim emojione-slim 是一个 npm 包,可以让你在前端页面中使用 emoji 表情。相比于官方规范的 emojione 包,emojione-slim 版本...

    3 年前
  • npm 包 grunt-pixelate 使用教程

    简介 在前端开发中,如果需要对图片进行像素化处理的话,通常需要用到 grunt-pixelate 这个 npm 包。本文将全面介绍如何使用 grunt-pixelate 实现对图片的像素化处理。

    3 年前
  • npm 包 @daniel-gwilt-software/ui-grid 使用教程

    在前端开发中,我们经常需要使用表格这个组件来展示数据。但是要实现复杂的表格功能,手写代码往往会很麻烦。此时我们可以通过使用 npm 包来快速构建表格组件。 本文将介绍一个名为 @daniel-gwil...

    3 年前
  • npm 包 ngx-virtual-keyboard 使用教程

    前言 前端开发中,输入框的体验是很重要的一部分。而更好的输入体验往往离不开更灵活、更智能的输入方式。ngx-virtual-keyboard 是一款能够为传统输入框加入虚拟键盘的 npm 包,旨在有效...

    3 年前
  • npm 包 realm-object-server-cognito-auth 使用教程

    在使用 Realm Object Server 的过程中,我们可能需要使用 Amazon Cognito 作为认证和授权提供者。而 realm-object-server-cognito-auth 包...

    3 年前
  • npm 包 xversion 使用教程

    概述 随着前端技术的快速发展,我们需要处理的代码量也在逐渐增加。当我们需要管理多个代码版本时,手动操作会变得十分复杂。npm 包 xversion 就是为这个问题提供了解决方案的工具。

    3 年前
  • npm 包 @ngscaffolding/appcore 使用教程

    在前端开发中,使用合适的工具和库可以大大提高开发效率。其中,npm 包是前端开发中经常使用的工具之一。本文将介绍如何使用 npm 包 @ngscaffolding/appcore 以及其深度和学习指导...

    3 年前
  • npm包mongoose-sequence-sequential使用教程

    前言 几乎所有的Web应用程序都需要持久化存储数据,而数据库是数据持久化的最佳解决方案之一。对于Node.js应用程序,可以使用Mongoose作为MongoDB数据库的Object-Document...

    3 年前
  • npm 包 react-native-collapsingtoolbar 使用教程

    介绍 react-native-collapsingtoolbar 是一个 React Native 中用于实现折叠式工具栏的 npm 包,可以使得用户在滚动页面时,工具栏可以随之展开与收缩。

    3 年前
  • npm 包 smart-nas 使用教程

    在 Web 前端开发过程中,我们通常会使用多个第三方库来简化我们的开发。npm 是现代的包管理器之一,它提供了大量的开源软件包,可供我们使用。在其中,smart-nas 是一款非常实用的 npm 包,...

    3 年前
  • npm 包 signalr-shimmy-zooloo 使用教程

    简介 signalr-shimmy-zooloo 是一款使用 JavaScript 编写的实时通讯库,可以轻松实现客户端与服务端的实时通讯功能。它支持多种传输方式,包括长轮询、Server-Sent ...

    3 年前
  • npm 包 vue-a11y-calendar 使用教程

    vue-a11y-calendar 是一个专门为 Vue.js 用户设计的无障碍日历组件。它提供了一些辅助功能(a11y),以确保日历具有可用性,使其能够适应不同的用户和设备。

    3 年前
  • npm 包 hiproxy-plugin-noah 使用教程

    简介 hiproxy-plugin-noah 是一个用于 hiproxy 的插件,它允许你在代理请求到服务端之前,对请求进行处理。这个插件基于 noah 的构建工具,支持各种场景下的mock,可以根据...

    3 年前
  • npm 包 lijingying_nodejstest 的使用教程

    在前端开发中,我们经常使用到各种 npm 包来提高我们的效率和开发体验。本文介绍一个我们可以使用的 npm 包:lijingying_nodejstest。 什么是 lijingying_nodejs...

    3 年前
  • npm 包 @heft/ui 使用教程

    介绍 @heft/ui 是一个前端 UI 组件库,提供了一些常用的 UI 组件,包括按钮、输入框、下拉框、表格等等。使用这些组件可以快速地构建出一个美观、实用的前端界面。

    3 年前
  • npm 包 rgb-color-utils 使用教程

    介绍 在前端开发中,经常需要操作颜色,比如颜色值之间的转换、颜色亮度调节、RGB 和 HSL 之间的转换等等。在这种情况下,一个好用的颜色操作库可以帮助减少代码量,提高开发效率。

    3 年前
  • npm 包 mk-app-proof-of-charge 使用教程

    随着前端技术的不断发展,越来越多的 npm 包被开发出来,给前端开发带来了很大的方便。mk-app-proof-of-charge 就是一个常用的 npm 包,它提供了一种简单的方式来生成收费的应用程...

    3 年前
  • npm 包 virtual-dom-omi 使用教程

    本文介绍了如何使用 virtual-dom-omi 这个优秀的 npm 包来快速构建前端应用程序。本文将从介绍 virtual-dom-omi 的概念和用途开始,然后详细讲解如何使用 virtual...

    3 年前

相关推荐

    暂无文章