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

React项目Husky钩子执行Prettier报错Cannot read property '' of null求助

错误原因
  • 核心原因是package.json中的format脚本存在语法错误:你的脚本写为prettier src/**/*.js --write. --config ./.prettierrc,其中--write参数后多了一个多余的小数点,拼接成了无效参数--write.。Prettier解析命令参数时出现异常,抛出空属性读取错误,该错误和业务代码的空值引用无关,属于工具参数解析层面的问题。
  • 次要问题:你使用的是Husky 7.x版本,该版本已经废弃了在package.json中配置husky.hooks的用法(该写法仅适用于Husky 4.x及更早版本),虽然该问题不导致本次报错,但会造成后续钩子无法正常触发。
解决方案

1. 修复Prettier执行脚本

将package.json中的format字段:

"format": "prettier src/**/*.js --write. --config ./.prettierrc",

修改为以下任意一种正确写法即可:
写法1(路径前置):

"format": "prettier src/**/*.js --write --config ./.prettierrc",

写法2(参数前置,更符合规范):

"format": "prettier --write src/**/*.js --config ./.prettierrc",

修改后先本地执行npm run format测试,确认无报错后再进行后续操作。

2. 适配Husky 7.x的钩子配置(可选但推荐)

如果要保证Husky钩子正常生效,按以下步骤调整:

  • 删掉package.json中包含hooks的整段husky配置项
  • 执行命令初始化Husky:
    npx husky install
  • 生成pre-commit钩子文件:
    npx husky add .husky/pre-commit "npm run lint && npm run format"
  • Mac/Linux系统需要额外执行命令给钩子加执行权限:
    chmod +x .husky/pre-commit

调整完成后再执行git commit操作即可正常触发校验。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:15:01