当前位置: 首页 > Web前端 > vue.js

【社畜自助指南】基础设施01:统一会员git提交规范和代码提交测试

时间:2023-03-31 17:38:19 vue.js

主题:smartblue持续创造,加速成长!这是我参加“掘金日报新项目六月更新挑战赛”的第二天。当你点击查看事件详情,使用git作为代码版本管理时,同学们可能会遇到这样的情况,就是提交的记录千奇百怪,千奇百怪,格式五花八门。如果你运气不好,你是一个接收者,或者你需要管理和审查项目,你必须有其他程序员的想法。可能有几种场景:提交信息含糊不清,比如写了一个[bugfix],很乱(黑问号脸)。后期需要定位某个bug的修复记录,但基本找不到。在浩瀚的投稿记录中找到,这也算是和issue的联动。总之:不规范的提交说明不能让其他同学快速了解项目的变化,得不到任何有效信息,这对接手或管理项目ORZ的同学是一个很大的打击。Angular提交规范示例我们可以直接使用现有的Angular提交规范。我们先看正面例子,简单分析一下。fix(types):styleinVNodedata支持字符串类型(#9728)----------------以此为例-----------------fixdescription修复VNodedata:filedescription中的bug(types)scopesupportstringtypeforstyle对应的issue(#9728)。可以直接跳转到这个项目的具体issue。先看基本语法规则:():#空行#空行

Headertype:表示commit的提交类型,强制scope:用来描述commit的影响范围,optionalsubject:用于描述commit的详细描述,optionaltyperequired:commit的提交类型。具体不用记,我们会使用vscode自带的插件来辅助我们提交。类型功能描述feat功能新功能fix修复缺陷,修复上一版本docs文档更新文档中的问题,只修改文档不修改代码样式stylechangeformat,不影响代码逻辑refactor重构重构代码,不是新特性不修改缺陷perfperformance优化性能,提高代码执行性能testtest添加新测试,添加测试用例以验证代码buildbuildupdatebuild,修改构建工具或外部依赖ci脚本更新脚本,修改CI或执行脚本配置chorestransactionchangetransaction,修改不影响代码的其他事务revertrollback回滚版本,撤销某条代码提交mergemerge合并分支,合并分支代码到其他分支sync同步同步分支,同步分支代码到其他分支impr改进功能,升级当前功能Modulescope可选:影响范围of提交。比如可以按架构类型来划分,比如业务层代码和视图层代码。这需要根据学生的项目特点来制定,可以基于结构、交互行为或功能。虽然它是可选的,但建议您编写它。主题是可选的:提交的详细描述。简要概述,尝试用一句话解释你的意图。体内可放置特定的小成分。试着从一个动词开始,它声明了[我]做了什么。也不以符号结尾。例如:[feat(api):Newdailyactiveburiedpointinterfacexxx]Body(正文)部分尽量写详细。你可以试着解释一下你的意图和需要注意的代码点。例如:修改了一个记录用户日常活动失败的bug。在这里你可以解释错误的原因和解决方案。页脚(footer)这部分只适用于两种情况,即不兼容的变更和关闭的问题。Incompatiblechanges:如果当前代码与之前的版本不兼容,则从BREAKINGCHANGE开始,关联变更描述、变更原因、迁移方式。Close:如果当前代码修复了一些Issue,则从Closes开始,关联目标Issue。例如:关闭#9527解决方案Commitlintinstallpluginnpminstall--save-dev@commitlint/config-conventional@commitlint/cli在项目的根目录下创建一个.commitlintrc.js文件module.exports={extends:["@commitlint/config-conventional"]};接下来为git配置husky,验证git的commit操作。Husky继承了Git下的所有钩子。当hook被触发时,husky可以防止非法commit、push等。npminstallhusky--save-dev在package.json中引入husky//package.json{"husky":{"hooks":{"commit-msg":"commitlint-EHUSKY_GIT_PARAMS"}}当提交代码时,会触发hook,执行commitlint-EHUSKY_GIT_PARAMS命令,然后读取commitlint.config.js的配置,如果检测失败则提交会中止并且会报错。以上是提交信息规范的配置。此外,我们还可以使用huskyhook对提交的代码文件进行校验等操作。lint-stagedinstallnpmi--Dlint-staged在package.json中引入husky的其他配置"husky":{"hooks":{"pre-commit":"lint-staged","commit-msg":"commitlint-EHUSKY_GIT_PARAMS"}},"lint-staged":{"**/*.{js,jsx,vue,ts,tsx}":["cross-envNODE_ENV=developmentvue-cli-servicelint"]}说明:这里lint-staged的配置是:在git要提交的文件中,在【开发环境】中,项目目录下的所有js、jsx、vue、ts、tsx都必须执行vue-cli-servicelint,命令vue-cli-servicelint是vue-cli3.0在构建项目时自动生成的。检查规则.eslintrc.js,.eslintignore,.editorconfigVsCodepluginConventionalCommits使用这个工具可以帮助快速生成提交信息。先在VsCode中安装插件,然后ctrl+shift+p进入ConventionalCommits。按照提示一步步点击即可快速生成~