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

如何解决husky与lint-staged的路径找不到问题?

解决husky跨目录执行pre-commit钩子的问题

问题根源

执行git commit时,husky默认在**git根目录(project/)**运行钩子命令,但你的package.json存放在admin/frontend/目录下,导致yarn找不到配置文件抛出错误。

解决步骤

1. 修改package.json中的prepare脚本

调整prepare命令里添加pre-commit钩子的部分,确保钩子执行时先切换到frontend目录再运行lint-staged:

"scripts": {
  "start": "webpack serve --progress --mode development",
  "build": "webpack --progress --mode production",
  "prepare": "cd ../.. && husky install admin/frontend/.husky && husky add admin/frontend/.husky/pre-commit \"cd admin/frontend && yarn lint-staged\""
}

2. 重新执行prepare脚本

在admin/frontend/目录下运行命令,让husky重新生成正确的钩子文件:

yarn prepare

3. 验证钩子文件(可选)

打开admin/frontend/.husky/pre-commit文件,确认内容如下:

#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

cd admin/frontend && yarn lint-staged

4. 测试git commit

现在执行git commit,husky会先切换到frontend目录找到package.json,再正常运行lint-staged,不会再出现找不到配置文件的错误。

额外调整(按需选择)

如果需要让lint-staged检查整个项目的文件,而非仅frontend目录下的代码,可以修改lint-staged的路径配置,使其相对于frontend目录向上匹配:

"lint-staged": {
  "../../**/*.{js,jsx,ts,tsx}": [
    "prettier --write",
    "eslint --fix"
  ]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 04:45:32