You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用lint-staged的Git Hook运行缓慢,配置是否有误?

问题分析与解决方案

你的提交hook运行缓慢的核心原因有两个,结合配置来看:

1. 缺失核心依赖包

你的package.json中只安装了prettier,但没有本地安装husky和lint-staged。这会导致每次触发hook时,npx需要远程检查依赖版本、甚至临时下载包,这是耗时的主要来源。

2. 未启用Prettier缓存

默认情况下Prettier的缓存机制未完全生效,导致每次都重新格式化所有匹配文件(即使只有单个文件变更)。


具体修复步骤:

  1. 安装缺失的依赖
    在项目根目录运行以下命令,将husky和lint-staged安装为开发依赖:

    npm install --save-dev husky lint-staged
    
  2. 重新配置husky hook
    确保pre-commit hook直接调用本地的lint-staged,避免npx的远程开销:

    npx husky add .husky/pre-commit "npx lint-staged"
    
  3. 优化lint-staged配置,启用Prettier缓存
    修改package.json中的lint-staged配置,添加--cache参数让Prettier只处理变更过的文件:

    "lint-staged": {
      "*.{js,css,md}": ["prettier --write --cache"]
    }
    
  4. 检查Node.js版本
    确保你的Node.js版本≥16.x,Prettier 3.x和husky v8+对老版本Node的兼容性差,运行效率低。


完成以上配置后,重新提交单个文件,耗时应该会降到几百毫秒以内。

内容的提问来源于stack exchange,提问作者AS3

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 05:52:33