yarn部署Next.js项目时出现prettier/prettier报错如何解决
问题根因
报错是Prettier格式校验不通过导致的构建失败,和业务代码逻辑无关,间隔5分钟突然触发大概率是三类原因:
- 编辑
./components/layout/Header.tsx时,编辑器自动格式化用了全局Prettier规则,和项目本地规则不匹配,误改了66-67行的缩进、换行 - 依赖锁文件异常,安装了和上次部署不同小版本的Prettier/ESLint插件,默认校验规则出现差异
- 配置冲突:你贴的配置里,.eslintrc.js和另一处JSON配置都重复定义了
prettier/prettier校验规则,多份规则优先级混乱导致校验异常
修复步骤
- 优先自动修复格式问题,直接在项目根目录执行:
跑完直接重新执行npx prettier --write ./components/layout/Header.tsxyarn deploy,绝大多数情况这一步就能解决,本质就是把不符合规则的缩进、换行自动改成符合要求的格式。 - 如果自动修复后还是报同样的错,先清理重复配置:
- 删掉JSON配置片段里重复写的
prettier/prettier规则块,全项目只保留.eslintrc.js里的一份Prettier规则配置即可,重复定义会出现规则覆盖、校验逻辑异常的问题 - 检查项目根目录有没有多余的
.prettierrc、.prettierrc.js、.editorconfig配置文件,如果有要确保缩进(默认2空格)、单行长度、行尾换行规则和eslint中配置的Prettier规则一致,避免多份格式规则冲突
- 删掉JSON配置片段里重复写的
- 以上两步都不行就重装依赖锁版本:
重装完成后再执行一次第一步的Prettier自动修复命令,再部署即可。rm -rf node_modules yarn.lock yarn install
紧急部署临时方案
如果赶上线需要快速绕过校验,可以临时在next.config.js里关闭构建阶段的ESLint校验,上线后再改回配置修复格式问题:
module.exports = { eslint: { ignoreDuringBuilds: true, }, // 保留原有其他配置 }
注:构建日志里的
target配置废弃警告和本次构建失败无关,后续升级Next.js版本时删掉对应配置即可,不影响当前部署。
内容的提问来源于stack exchange,提问作者user16394758
相关产品推荐
相关产品推荐

