You need to enable JavaScript to run this app. VSCode更新至v1.53后Prettier报无效配置错误无法自动格式化求助
优惠活动
大模型
产品
解决方案
定价
更多

VSCode更新至v1.53后Prettier报无效配置错误无法自动格式化求助

问题触发原因

VSCode升级到v1.53版本时,同步拉取了你安装的Prettier扩展(对应版本5.9.1)的更新包。这次更新把扩展的本地配置加载逻辑对齐到了Node.js的官方模块识别规范,和之前的兼容逻辑不一致,才触发了报错。
具体冲突点很明确:你的项目在package.json里配置了"type":"module",按照Node.js的规则,这个配置会把项目目录下所有后缀为.js的文件,全部默认判定为ES Module格式。但Prettier扩展读取配置用的是CommonJS的require()方法,Node.js从v14开始就明确不支持用require()直接加载ES Module格式的文件,自然就报了“无效配置”的错。

之前为什么一直用得好好的:旧版Prettier扩展根本没严格遵循Node.js的识别规则,碰到.js后缀的配置文件会强行按CommonJS格式解析,相当于绕开了ES Module的加载限制。等更新到新版本对齐了官方规范,之前被掩盖的兼容问题就直接暴露了。

可直接落地的修复方案
  • 最推荐的低改动方案:直接把项目根目录下的.prettierrc.js重命名为.prettierrc.cjs。Node.js对.cjs后缀的文件有强制识别规则,不管项目有没有开启"type":"module",这类文件都会被按CommonJS格式解析,你原有的module.exports写法一行都不用改,Prettier就能正常读到配置。
  • 不想改文件名的替代方案:把现在写在js文件里的Prettier配置,迁移成其他格式的配置文件。比如直接在根目录建纯JSON格式的.prettierrc文件写配置,或者把配置块直接塞到项目package.json的prettier字段里,这样就不会碰到js文件被识别成ES Module的问题。
  • 避坑提醒:千万别为了修这个错直接删掉package.json里的"type":"module"配置,这个字段是你项目运行ES Module逻辑的核心配置,删了会连带引出一堆其他模块加载的问题,得不偿失。
额外说明

你项目里同样用module.exports编写的.eslintrc.js没报错,是因为你现在安装的ESLint版本本身就已经适配了ES Module项目的配置加载逻辑,和Prettier扩展的加载逻辑不通用,完全不需要对.eslintrc.js做任何重命名或者格式调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.04 20:36:05