为什么我的ESLint在GitHub Actions中检测到错误但构建还是通过了?

UE丶玉霞 阅读 12

我给项目配置了ESLint,并在GitHub Actions里加了lint检查步骤。但今天提交了一个明显违反规则的代码(比如少了个分号),控制台确实输出了错误,但最后构建状态还是显示成功了。我检查了.eslintrc里的规则配置没问题,也确认工作流文件里执行了npm run lint,但就是无法让CI阻塞构建。错误信息里显示ESLint的exit code是0,这正常吗?


# GitHub Actions步骤片段
- name: Lint Check
  run: npm run lint

之前本地跑npm run lint会直接报错退出,但CI环境就是不报错。难道需要额外配置ESLint的exit策略吗?

我来解答 赞 2 收藏
二维码
手机扫码查看
1 条解答
诸葛美玲
问题出在ESLint的exit code上,CI环境默认不把警告当作错误。直接这样改你的npm脚本:

"scripts": {
"lint": "eslint . --max-warnings=0"
}


或者在GitHub Actions里强制检查退出码:

- name: Lint Check
run: npm run lint && echo "Lint passed" || (echo "Lint failed" && exit 1)


这两种方式都能让CI在有ESLint错误时正确退出,选一个用就行。
点赞 1
2026-02-15 22:33