Prettier在CI中格式检查不通过,本地却没问题?

秀花酱~ 阅读 67

我在本地跑 prettier --check . 没问题,但推到GitHub Actions里就报错说格式不对,这到底啥情况?

我用的是React项目,代码长这样:

const Button = ({ label }) => {
  return <button className="btn">{label}</button>;
};

export default Button;

明明本地保存时自动格式化了,CI却说这文件没按Prettier规则来,是不是版本不一致导致的?

我来解答 赞 11 收藏
二维码
手机扫码查看
2 条解答
培乐
培乐 Lv1
大概率是你的 prettier 配置文件没提交到仓库。

本地能过是因为你本地有 .prettierrc 或者在 package.json 里配了规则,但这些文件没 push 上去,CI 跑的时候用的是 prettier 默认配置,跟你本地不一样。

检查一下你的 git 状态:

git status

看看有没有 .prettierrc、.prettierrc.js、.prettierrc.json 或者 package.json 里的 prettier 配置没提交。

解决方案很简单,把配置文件加进去:

git add .prettierrc
git add package.json
git commit -m "add prettier config"
git push

然后重新跑 CI 试试。

如果还想确认是不是版本问题,可以在 CI 的 workflow 里加一行输出 prettier 版本:

- run: npx prettier --version

这样能看清 CI 用的是哪个版本。本地也跑一下对比一下:

npx prettier --version

十有八九是配置文件的问题,版本不一致反而没那么常见。
点赞
2026-03-19 23:03
司徒柯欣
哈,这种问题我在WP里面也遇到过几次。99%的概率是CI环境和本地环境用的Prettier版本不一致。

先确认下你本地的Prettier版本:
npx prettier --version


然后在GitHub Actions的日志里找到它用的版本号对比下。如果不一样,解决办法很简单:

1. 在package.json里固定版本,比如:
"devDependencies": {
"prettier": "2.8.8"
}


2. CI里跑命令前先装依赖:
npm install
npx prettier --check .


还有个常见坑是.editorconfig或.prettierrc配置没提交到git,导致CI环境没有你的格式化规则。检查下这些文件是不是都在仓库里。

如果还不行,在CI脚本里加个调试命令看看实际运行的规则:
npx prettier --debug-check .


这破事浪费过我一下午时间,后来学乖了,团队项目必须锁死格式化工具版本...
点赞
2026-03-07 14:01