VSCode + Git Hooks:在代码提交前自动运行检查_技术学院_宜昌市隼壹珍商贸有限公司

您好,欢迎访问宜昌市隼壹珍商贸有限公司

400 890 5375
当前位置: 主页 > 新闻动态 > 技术学院

VSCode + Git Hooks:在代码提交前自动运行检查

发布时间:2025-12-25  |  点击率:
推荐使用 Husky 管理 Git Hooks,在 package.json 中声明式配置 pre-commit 钩子执行 lint-staged 等检查;VSCode 通过 ESLint 等插件实时提示错误,确保本地与 CI 检查一致;跳过需谨慎,仅限 WIP 等明确场景。

在代码提交前自动运行检查,关键在于用 Git Hooks 拦截 git commit 流程,并在其中执行检查命令(如 ESLint、Prettier、TypeScript 编译等),VSCode 本身不直接管理 hooks,但能无缝配合本地配置,让开发体验更顺滑。

用 Husky 管理 Git Hooks(推荐)

Husky 是目前最主流的 Git Hooks 管理工具,它把钩子脚本声明式地写在 package.json 中,避免手动维护 .git/hooks/ 下的文件,也支持跨团队同步。

  • 安装:运行 npm install husky --save-dev
  • 启用:执行 npx husky install(会创建 .husky/ 目录并设置 Git 的 hooks path)
  • 添加 pre-commit 钩子:运行 npx husky add .husky/pre-commit "npm run lint-staged"
  • 搭配 lint-staged 只检查暂存区文件,更快更精准

VSCode 配合:让编辑器“感知”检查结果

VSCode 不会自动触发 Git Hooks,但它能通过插件或配置,提前暴露潜在问题,减少被 hook 拦下的次数。

  • 安装 ESLint、Prettier、TypeScript 插件,开启 "editor.codeActionsOnSave": { "source.fixAll": true }
  • settings.json 中设 "eslint.run": "onType""onSave",实时提示错误
  • 确保项目根目录有 .eslintrc.cjs.prettierrc 等配置,VSCode 插件才能正确读取规则

本地检查和 CI 保持一致

别让本地能过、CI 失败。把检查命令统一定义在 package.json#scripts 里,Git Hook 和 CI 都调用同一脚本。

  • 例如:"scripts": { "lint": "eslint src/", "format": "prettier --write .", "check": "npm run lint && npm run type-check" }
  • Husky 的 pre-commit 调用 npm run check,CI 的 job 也跑这个命令
  • type-check 脚本(如 tsc --noEmit)可提前发现类型错误

跳过钩子要谨慎,但得留出口

偶尔需要绕过检查(比如写一半的 WIP 提交),可以用 git commit --no-verify 或简写 -n。但建议:

  • 在团队文档中明确哪些情况允许跳过
  • 避免在主分支相关分支上跳过 lint / test
  • 考虑用 git commit -m "chore: wip" --no-verify 加注释,提醒自己补检查

基本上就这些。核心是:Husky 拦住提交、VSCode 提前报错、脚本统一维护、跳过机制可控。不复杂但容易忽略细节,配好一次,后续所有提交都自动受保护。

全国统一服务电话

400 890 5375

电子邮箱:879577@qq.com

公司地址:宜昌市西陵区黄河路5号三峡明珠10栋1051室

咨询微信

TEL:13680874598