《Git Hooks与Chrome DevTools调试指南》
前端工程化实践:Git Hooks 拦截机制与 Chrome DevTools Network 接口调试详解
在现代前端开发过程中,除了掌握框架和业务开发能力,还需要具备一定的工程化能力。
实际项目中经常会遇到:
- 提交代码前需要自动检查代码规范
- 防止错误代码进入仓库
- 接口请求失败无法定位原因
- 前后端联调出现参数问题
- 页面数据异常但不知道问题在哪里
这些问题分别对应两个重要能力:
- Git Hooks 拦截机制
- Chrome DevTools Network 网络调试能力
本文主要介绍:
- Git Hooks 是什么
- Git Hooks 工作流程
- 常见 Hooks 类型
- 使用 Husky 管理 Git Hooks
- 前端项目中的代码提交检查流程
- Chrome DevTools Network 使用方法
- 如何进行接口抓包和问题排查
- 常见接口问题分析
一、Git Hooks 拦截机制
1. 什么是 Git Hooks?
Git Hooks:
Git 提供的一种在特定 Git 操作发生时自动执行脚本的机制。
简单来说:
Git Hooks 可以理解为:
Git 生命周期中的自动化拦截点。
例如:
开发人员提交代码:
git commit执行过程:
git commit
↓
触发 Git Hook
↓
执行检查脚本
↓
检查通过
↓
提交代码如果检查失败:
阻止提交2. 为什么需要 Git Hooks?
在团队开发中,经常存在:
(1)代码格式不统一
例如:
开发人员 A:
const a=1;开发人员 B:
const a = 1;导致:
- 代码风格混乱
- Code Review 成本增加
(2)提交错误代码
例如:
开发人员提交:
console.log("test")或者:
debugger;进入生产环境。
(3)代码质量检查
提交前自动执行:
- ESLint
- Prettier
- TypeScript 类型检查
- 单元测试
避免问题代码进入仓库。
二、Git Hooks 工作原理
Git Hooks 存放位置:
.git/hooks目录结构:
项目
├── .git
│
└── hooks
├── pre-commit
├── commit-msg
└── pre-push这些文件本质上是:
可执行脚本。
三、常见 Git Hooks 类型
Git Hooks 根据执行阶段分为:
- 提交前 Hook
- 提交阶段 Hook
- 推送阶段 Hook
1. pre-commit
作用
提交代码之前执行。
流程:
git commit
↓
pre-commit
↓
代码检查
↓
提交常用于:
- ESLint 检查
- Prettier 格式化
- 单元测试
示例:
npm run lint如果检查失败:
提交终止。
2. commit-msg
作用
检查提交信息。
例如团队要求:
feat: 添加登录功能
fix: 修复登录bug如果提交:
修改代码可能被拒绝。
3. pre-push
作用
代码 push 前执行。
流程:
git push
↓
pre-push
↓
执行测试
↓
上传远程仓库常用于:
- 完整测试
- 构建检查
四、前端项目中的 Git Hooks 实践
Husky
Husky:
一个方便管理 Git Hooks 的工具。
安装:
npm install husky --save-dev初始化:
npx husky init生成:
.husky
├── pre-commit
└── pre-push五、结合 lint-staged 实现提交检查
问题:
如果项目很大:
每次提交检查全部文件:
效率低。
解决:
使用:
lint-staged
作用:
只检查:
Git 暂存区文件。
流程:
修改代码
↓
git add
↓
git commit
↓
husky触发
↓
lint-staged检查修改文件
↓
提交配置:
{ "lint-staged": { "*.{js,vue,ts}": [ "eslint --fix", "prettier --write" ] }}效果:
提交前自动:
- 修复格式
- 检查代码
六、Chrome DevTools Network 网络调试
1. 什么是 Network?
Chrome DevTools Network:
浏览器提供的网络请求分析工具。
主要用于:
- 查看 HTTP 请求
- 查看请求参数
- 查看响应数据
- 分析接口耗时
- 排查接口错误
七、打开 Network 面板
快捷键:
Windows:
F12
或者
Ctrl + Shift + IMac:
Command + Option + I八、Network 面板结构
Network
├── Name
├── Method
├── Status
├── Type
├── Initiator
├── Size
└── Time九、如何查看接口请求
点击请求后:
可以查看:
Headers
包含:
- Request URL
- Request Method
- Request Headers
例如:
Authorization:Bearer tokenPayload
查看请求参数。
例如:
{ "username":"Tom", "password":"123456"}用于排查:
- 参数是否正确
- 字段是否缺失
Response
查看后端返回数据。
例如:
{ "code":200, "data":{ "name":"Tom" }}十、Network 排查接口问题流程
页面异常
↓
打开 Network
↓
找到接口请求
↓
查看请求参数
↓
查看响应状态码
↓
分析返回数据
↓
定位问题十一、常见接口问题分析
1. 请求没有发送
可能原因:
- 点击事件没有触发
- 前端代码报错
- 请求逻辑未执行
排查:
查看 Console。
2. 404
表示:
接口不存在。
检查:
- 请求地址
- 路由路径
3. 401
表示:
未认证。
常见原因:
Token 失效。
检查:
Authorization:Bearer token4. 403
表示:
没有权限。
例如:
普通用户访问管理员接口。
5. 500
表示:
服务器异常。
查看:
Response。
6. 参数错误
例如:
前端:
{ "userName":"Tom"}后端:
{ "username":"Tom"}字段名称不一致:
导致参数绑定失败。
十二、接口性能分析
Time
表示:
请求耗时。
例如:
2000ms说明接口较慢。
Timing
查看请求阶段:
Queueing
↓
DNS
↓
TCP连接
↓
Waiting
↓
Download十三、调试技巧
Preserve log
作用:
刷新页面后:
保留之前请求。
适合:
登录跳转问题。
Disable cache
作用:
关闭浏览器缓存。
避免:
缓存影响测试。
Copy as cURL
复制完整请求:
方便后端排查。
十四、面试回答模板
Git Hooks 是什么?
Git Hooks 是 Git 提供的生命周期钩子机制,可以在 commit、push 等操作前后执行脚本。在前端项目中通常结合 Husky 和 lint-staged,在提交代码前自动执行 ESLint、Prettier 和测试,保证代码质量。
如何排查接口问题?
我通常会通过 Chrome DevTools Network 查看接口请求。首先确认请求是否发送,然后检查 Request URL、Method、Headers、Payload 参数,再查看 Response 返回数据和状态码。如果接口慢,还会分析 Timing 判断耗时阶段,从而定位前端、网络还是后端问题。
总结
Git Hooks
核心:
代码提交
↓
自动拦截
↓
代码检查
↓
保证质量重点:
- pre-commit
- commit-msg
- pre-push
- Husky
- lint-staged
Chrome DevTools Network
核心:
请求分析
↓
参数检查
↓
响应查看
↓
性能定位重点:
- Headers
- Payload
- Response
- Status Code
- Timing
掌握 Git Hooks 和 Chrome DevTools Network 调试能力,可以提升前端工程化能力,也是企业级前端开发的重要技能。
《Git Hooks与Chrome DevTools调试指南》
作者:felinus
本文链接: https://felinus-blog.vercel.app/posts/f888283/
本文采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。