首页 > 其他分享 >husck4.0以上版本如何配置我们的提交校验和提交信息校验

husck4.0以上版本如何配置我们的提交校验和提交信息校验

时间:2024-03-18 16:55:42浏览次数:16  
标签:const -- lint 校验 提交 husck4.0 我们

husck4.0 以上版本如何配置我们的提交校验和提交信息校验

目的实现

husck4.0 以上版本如何配置我们的提交校验和提交信息校验,包括:

  • 提交信息校验
  • 提交校验

分析步骤实现

  1. 首先我们需要处理代码的格式化有一个完整的 eslint 规则,(默认大家的项目中都有)
  2. 我们配置我们的项目中格式化代码的脚本 npm run lint
    pageage.json中,我们加入:
  "scripts": {
    "lint": "eslint src --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
  },

我们安装4.0以上的husk可以直接使用npm install --save-dev husky lint-staged

package.json中加入:

"husky": {
    "hooks": {
      "pre-commit": "lint-staged"
    }
  },
  "lint-staged": {
    "src/**/*.scss": [
    "prettier --write",
    "git add"
    ],
    "src/**/*.{ts,tsx}": [
        "prettier --write",
     "git add"
     ]
  }

最后我们要去husk下面添加我们的hook钩子文件
pre-commit

 npm run lint

commit-msg

// 我们通过正则进行匹配即可

const chalk = require('chalk');
/* 读取我们的git hook中的变量获取我们的提交信息 */
const msg = require('fs').readFileSync(process.env.HUSKY_GIT_PARAMS);
/* 通过这个正则进行匹配我们的规则 https://zhuanlan.zhihu.com/p/447139270 解释 */
const commitRE = /^(revert: )?(Merge|(feat|fix|docs|style|refactor|workflow|ci|types)(\(.+\))?:(\s)?(.{1,50})?(\s)?to(\s)?#).{1,50}/;
/* 如下正则是我们不需要进行提交信息校验的直接通过即可 */
const ignore = /^(chore|perf|test)(\(.+\))?: .{1,50}/;
/* 如果失败则进行错误提示 */
if (!commitRE.test(msg) && !ignore.test(msg)) {
  console.error('error')
  process.exit(1);
}

标签:const,--,lint,校验,提交,husck4.0,我们
From: https://www.cnblogs.com/gjzsa/p/18080877

相关文章

  • 内网私仓全流程搭建记录(二)-npm私仓提交与拉取
    1、npm私仓依赖下载及本地上传方法一1)使用Pycharm创建py文档,写入如下py代码:importosimportreimportaiohttpimportasynciofromurllib.parseimporturlparsefromconcurrent.futuresimportThreadPoolExecutor#创建存储文件夹download_folder="sourcenpm"os.m......
  • 从单机到分布式微服务,大文件校验上传的通用解决方案
    一、先说结论本文将结合我的工作实战经历,总结和提炼一种从单体架构到分布式微服务都适用的一种文件上传和校验的通用解决方案,形成一个完整的方法论。本文主要解决手段包括多线程、设计模式、分而治之、MapReduce等,虽然文中使用的编程语言为Java,但解决问题和优化思路是互通的,适合......
  • 如何计算下载文件的校验和?
    一、什么是校验和?校验和是对一段数据(通常是单个文件)运行一种称为加密散列函数的算法的结果,英文名:checksum。二、为什么要计算校验和?用于“检查”数据或文件在存储或传输过程中是否被更改。从网上下载的软件通常附带校验和,这样用户可以确保文件或文件在传输过程中没有被修......
  • 更新用户基本信息-完成参数校验(2024-3-15)
    实体参数校验@NotNull@NotEmpty@Email接口方法的实体参数上添加@Validated注解@PutMapping("/update")publicResultupdate(@RequestBody@ValidatedUseruser){userService.update(user);returnResult.success();}@NotNullprivate......
  • evel()与table里面循环校验器的结合使用
    <el-form:rules="rules"ref="formTableRef":model="formTable"label-position="top"label-width="100px"><el-table:data="formTable.tableData"style="width:100%">......
  • Git提交规范
    意义及现状在开发过程中,Git每次提交代码,都需要写Commitmessage(提交说明),规范的Commitmessage有很多好处:方便快速浏览查找,回溯之前的工作内容可以直接从commit生成Changelog(发布时用于说明版本差异)目前我们并没有对commitmessage进行规范,造成以下麻烦:每个人风格不同,......
  • 前端提交数据后http状态码400
    报错如下:分析原因:前端Cookie使用过多,储存数据过大 解决方案:方案一:Nginx配置文件nginx.conf中把请求头内存调大client_header_buffer_size32k;large_client_header_buffers432k;方案二:前端删除部分Cookie,用H5中的本地储存localStorage代替<!DOCTYPEhtml><html>......
  • MYSQL 是如何保证binlog 和redo log同时提交的?
    MYSQL一个事务在提交的时候能够保证binlog和redolog是同时提交的,并且能在宕机恢复后保持binlog和redolog的一致性。先来看看什么是redolog和binlog,以及为什么要保持它们的一致性。什么是redolog,binlogredolog是innodb引擎层产生的日志,MYSQL从磁盘读取数据的单位是一......
  • 浅谈奇偶校验
    奇校验:"1"的个数为奇数偶校验:"1"的个数为偶数(补充的1位校验码放在前后其实都可以,这里是往后面放)比如001的奇校验0010,偶校验0011比如010的奇校验0100,偶校验0101比如011的奇校验0111,偶校验0110简简单单,但是为什么奇偶校验的码距是2呢?首先需要知道码距是什么定......
  • 隐式提交的引申之DB/SAP LUW
    1、写在前面之前发表过《聊聊更新表时的隐式提交》一文,向大家介绍隐式提交,对于数据库操作的作用。有粉丝看过后,提出了自己的疑问:首先解释一下,该粉丝大致的问题和代码含义为:在创建销售订单增强中,当因为错误需要拦截单据创建时,需要用commitwork记录日志数据到自建表。而由于使......