VSCode中Prettier格式化JSON报错:';' expected的解决求助
解决Prettier格式化JSON报错及切换到VSCode原生格式化的方法
问题原因分析
你的报错';' expected完全是配置冲突导致的:你的.prettierrc里强制指定了parser: "typescript",但TypeScript解析器会把JSON文件当成TS代码来解析——JSON里的键是带双引号的(比如"Requester"),而TS中对象的标识符键不需要引号,所以解析器会在双引号位置期待分号或其他TS语法,直接抛出错误。
一、修复Prettier格式化JSON的问题
你有两种方式调整配置,让Prettier正确处理JSON文件:
1. 修改全局Prettier配置(推荐)
直接去掉.prettierrc里的parser字段,让Prettier自动根据文件后缀选择对应的解析器:
{ "useTabs": false, "tabWidth": 2, "printWidth": 120, "trailingComma": "none", "singleQuote": true, "bracketSpacing": true, "jsxBracketSameLine": false, "arrowParens": "always", "endOfLine": "auto", "htmlWhitespaceSensitivity": "css", "insertPragma": false, "jsxSingleQuote": false, "proseWrap": "preserve", "quoteProps": "as-needed", "requirePragma": false, "semi": true }
2. 针对JSON文件单独配置解析器
如果你需要保留TS相关的全局配置,只想让JSON文件用正确的解析器,可以在VSCode的settings.json中添加:
"[json]": { "prettier.parser": "json" }
修改完配置后,重新打开你的JSON文件,执行格式化(Ctrl+Shift+I或Cmd+Shift+I),应该就能正常工作了。
二、禁用Prettier,改用VSCode原生JSON格式化
如果你不想继续使用Prettier,有几种方式切换到VSCode原生的JSON语言特性格式化:
1. 仅对JSON文件禁用Prettier
打开VSCode的settings.json,设置JSON文件的默认格式化器为VSCode原生工具:
"[json]": { "editor.defaultFormatter": "vscode.json-language-features" }
2. 完全禁用Prettier扩展
- 打开VSCode的扩展面板(
Ctrl+Shift+X或Cmd+Shift+X) - 找到Prettier - Code formatter扩展
- 点击右下角的「禁用」按钮(可以选择禁用全局或仅当前工作区)
3. 让Prettier忽略JSON文件
在项目根目录创建.prettierignore文件,添加JSON文件的匹配规则:
*.json
内容的提问来源于stack exchange,提问作者Manny
相关产品推荐
相关产品推荐

