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

配置Husky执行git commit时报Missing script: "test"错误如何解决

Husky pre-commit 钩子报Missing script: "test"错误解决

执行npx husky add .husky/pre-commit "npm test"时,会把npm test写入pre-commit钩子逻辑,提交代码时钩子会自动执行该命令,而npm执行npm test时必须读取package.json中scripts字段下定义的test脚本,当前项目未配置该脚本就会直接报错终止提交。使用--no-verify会跳过整个pre-commit钩子的所有逻辑,包括配置的npx lint-staged代码校验,属于临时绕过方案,不建议长期使用。

对应解决方案

根据实际需求二选一即可:

  • 需要保留提交前执行测试的逻辑
    打开项目根目录的package.json,在scripts节点下补充test脚本配置即可,如果暂时还没写测试用例,可以加--passWithNoTests参数避免无测试文件时报错,配置示例:
    {
      "scripts": {
        "test": "jest --passWithNoTests"
        // 如果用vitest、mocha等其他测试框架,替换成对应执行命令即可
      }
    }
    
    配置完成后重新提交代码,就会正常执行测试逻辑,测试通过后才会完成提交。
  • 不需要提交前跑测试,只保留lint-staged校验
    直接打开.husky/pre-commit文件,删除里面的npm test行,只保留需要执行的lint-staged命令即可,标准配置参考:
    #!/usr/bin/env sh
    . "$(dirname -- "$0")/_/husky.sh"
    
    npx lint-staged
    
    修改完保存文件,后续提交就会正常执行lint-staged的代码格式、语法校验,不会再报找不到test脚本的错误。

注意事项

  • 修改.husky目录下的钩子文件后,不需要重新执行husky install,保存后下次git操作就会生效
  • 非紧急情况不要使用--no-verify参数跳过钩子校验,避免不符合规范的代码被提交到仓库

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:15:10