lint-staged自定义配置执行失败:始终返回exit code 1错误
lint-staged自定义配置执行失败(exit code 1)解决思路
问题描述
复制lint-staged官方README第一个示例作为lint-staged.config.js,执行始终返回error Command failed with exit code 1。已尝试三种方式均无效:
- 在package.json中配置并调用yarn lint-staged传入自定义配置路径
- 在husky/pre-commit中用npx指定配置路径执行
- 直接在命令行通过yarn指定配置文件执行
调整路径格式(含各种引号)也无法解决,需求是成功运行自定义配置。
排查与解决步骤
1. 验证配置文件语法合法性
直接执行node lint-staged.config.js,如果出现语法报错,按以下方式处理:
- 若配置用了
export default,在package.json中添加"type": "module",或者改成CommonJS格式:module.exports = {} - 检查配置里的对象语法、标点符号,比如是否有遗漏的闭合括号或多余逗号。
2. 确认配置路径正确性
--config后的路径要相对于当前工作目录,根目录下的配置直接写--config lint-staged.config.js,子目录下的写全路径(如--config ./.config/lint-staged.config.js)- 加
--debug参数查看加载日志:yarn lint-staged --config ./lint-staged.config.js --debug,确认是否成功读取配置文件。
3. 简化配置定位问题
把配置简化到最小可执行版本,排查是否是配置内容逻辑问题:
module.exports = { '*': ['echo "lint-staged test success"'] }
执行测试命令,如果能正常输出,再逐步添加原配置项(比如eslint、prettier命令),每次加一项就测试,定位到具体导致失败的命令。
4. 检查依赖版本兼容性
husky和lint-staged版本不匹配可能导致执行失败,尝试重新安装依赖:
rm -rf node_modules yarn.lock yarn install
如果是特定版本问题,可以锁定兼容版本,比如husky@8.x搭配lint-staged@13.x。
5. 查看详细错误日志
执行命令时添加--verbose参数获取完整错误信息:
yarn lint-staged --config ./lint-staged.config.js --verbose
日志会显示具体是哪个命令执行失败、错误原因(比如eslint找不到配置、prettier版本不兼容等)。
内容的提问来源于stack exchange,提问作者Zyncho
相关产品推荐
相关产品推荐

