当前位置: 首页 > Web前端 > JavaScript

前端代码库中的githooks

时间:2023-03-27 16:50:27 JavaScript

本文收获:githooks基础知识yorkie原理如何使用本地vscode打开github项目故事是这样的:一:在npm中添加了vue-runlintscripttsc--noEmit--skipLibCheck&&....执行此命令后,--no-verify可能不会生效。同事:我一脸黑线,肯定可以继续用--no-verify跳过检查:...尴尬--no-verify不是用来跳过lint检查的吗?上面的对话反映了几个问题:我不知道——no-verify本质上对什么起作用?我对githooks了解不多,我对eslint很在行。..githooks用于在代码提交前做一些eslint验证,代码格式化,分支名称检查,文件目录指定,yarn.lock文件强制提交等。package.jsonfile"devDependencies":{"yorkie":"2.0.0"},"gitHooks":{"pre-commit":"npmrunlint-staged","pre-push":"npmrundoctor"}从前端来看,代码库已经安装了yorkie包,执行时,对应的npm命令会在gitcommit和gitpush之前执行。当我们偶尔遇到一些lint错误不想修复时,可以通过gitcommit--no-verify快速绕过检查。仅此而已,其他的我不懂。githooks的本质是git可以在特定的预设动作发生时触发自定义脚本。钩子通常放在代码库的.git/hooks目录中no-verify为谁工作——no-verify是git命令的一个长选项。yorkieyorkie可以使存储库的githooks操作更容易配置。它是husky库的一个分支,有一些小的调整。更好地支持monorepo库在package.json中更改hooks配置的位置husky:{"scripts":{"precommit":"foo"}}yorkie:{"gitHooks":{"pre-commit":"foo"}}在学习了githooks和yorkie之后,我现在可以清楚的描述gitcommit触发eslint校验和gitpush先卡控的原理了。以gitcommit为例:执行gitcommit命令,触发githooks的钩子pre-commit,执行.git下的git-commit文件。.js文件从package.json文件中读取gitHooks配置我如何读取yorkie代码安装GitHubRepositories插件。添加相应的代码库。使用本地vscode直接打开github代码有很多好处。优点:保持使用习惯,跳转更方便下载到本地最方便,但容易造成本地文件夹混乱,找不到人。这是网页浏览无法替代的缺点:由于网速限制无法进行本地调试,偶尔会出现文件跳转卡住的情况,环境准备好,开始阅读代码。当我们第一次接触代码库时,我们首先看它的package.json文件。关键的两个入口是install和uninstall,可以推断githooks文件是在安装包的时候写的,写清理操作是在卸载包的时候做的。我们可以进一步阅读bin/install.js文件,发现关键代码都在src/install.js文件中。只要往下看,仔细阅读就会发现,主要是做了一些文件校验和写操作,正好符合我们的推断。时间原因就不深入讲了,说实话,我也没有继续深入阅读。还介绍了一般原理。tipsinstall和postinstall挂钩应该是等效的。初次阅读yorkie源码,对于scripts->installhook非常迷惑。反复查看文档,才知道install==postinstall很好,着急,但我没有放弃