| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> 项目中使用 husky 格式化代码和校验 commit 信息 -> 正文阅读 |
|
[开发工具]项目中使用 husky 格式化代码和校验 commit 信息 |
大家好,我是前端西瓜哥。今天我们学习使用 husky 工具,在 commit 的时候做一些风格的校验工作,包括 commit 信息格式化和文件格式化。 git hook 和 huskygit hook 让我们可以在 git 执行一些行为的前后时机,执行一些脚本。 比如 或是 利用 git hook 的能力,我们就可以在 commit 前做一些风格检验或格式化,比如 ESLint、Prettier、commit 格式等。 git hook 是 sh 脚本,在项目
husky 安装和启用
首先是安装:
然后执行 husky 命令行工具,启用 git hook:
该命令会创建一个
同时,该命令还将 git 所在项目本地环境的 我们执行下面命令,可以看到当前 git 项目的本地配置有:
其他同事拉取项目时,他们可能会忘记执行上面的命令启用 git hook。但有一个命令他们是一定会执行的,就是执行 于是我们需要利用 npm script 的生命周期脚本,加上一个 prepare。prepare 会在 install 之后执行。
这样就能保证新同事拉项目并安装依赖后,husky 被启用。 创建 hook
该命令会给你在 .husky 下创建一个 pre-commit 脚本,并填充
创建的脚本内容为:
它会在真正 commit 前执行 实战:使用 commitlint 校验 commit 信息格式我们希望在提交 commit 时,能够检验 commit 信息,如果不对就不允许提交。这样能防止开发人员提交一些杂乱、无法理解或不统一的信息。 这种情况下需要用到 commit-msg 钩子,我们先创建一个没有内容的 commit-msg。
在 commit-msg 脚本中,我们可以通过 可以拿到 commit 信息,那我们就可以在上面做一些校验工作,比如看是否符合 那,我们去找轮子,轮子找到了,它就是 commitlint。commitlint 是一个命令行工具,能够做 commit 的校验,并提供了官方的校验规则,此外也支持你自己配置规则。 先安装 commitlint:
然后创建
https://www.conventionalcommits.org/en/v1.0.0/ 然后我们在 commit-msg 钩子上加上:
配置后,我们测试下,先提交不规范的 commit: image-20221030213823321 加上开头的 commit 类别 type,再提交,成功了: image-20221030213955764 实战:使用 lint-staged 格式化要暂存区的文件lint-staged 是一个命令行工具,它能够对 git 的 staged(暂存区)中的文件使用 linter 工具格式化,修复一些风格问题,并再次添加到 staged 上。 一个经典的搭配是,配合 husky 的 pre-commit 钩子将文件 格式化后再提交。pre-commit 在真正 commit 前触发,配合上 lint-staged,就能做一些风格的修正。 使用 lint-staged 强制提交的文件做格式化适用的场景:
下面我们开始配置。 首先我们安装 lint-staged:
然后新增 pre-commit 钩子,内容为
因为提交的文件有多种类型,比如 js、md、less、mdx 等。所以我们还需要配置一下,针对不同类型文件使用不同的 linter。 lint-commit 的配置可以放到 package.json,也可以放到专门的配置文件里。我选择后者,在项目根目录创建一个
这里表示指定在 src 目录下 js、jsx、ts、tsx 后缀文件,使用 eslint 做格式化。我只使用 eslint 做 js 和 ts 的格式化,其他的就不管了,你可以考虑用过 prettier 格式化它们。 关于 eslint 的配置,可以看我的这篇文章《ESLint 配置入门》。 这里有一个 Github 可以参考,地址为: https://github.com/F-star/xigua-ui 结尾husky 是一个很有用的工具,能够利用 git hook 在本地 commit 时,配合 eslint 等 linter 工具做文件的格式化,并配合 commitlint 校验 commit 信息格式,是工程化统一代码风格的一大利器。 我是前端西瓜哥,欢迎关注我,学习更多前端知识。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:45:24- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |