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
相关产品推荐
相关产品推荐

