You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行Prettier报错:退出码2及意外令牌':'问题求助

Prettier格式化报错:Unexpected token ':' 问题解决

问题现象

执行yarn format(脚本配置为"format": "prettier --config \"packages/**/*.{ts,tsx}\"")或make fmt时,触发如下错误:

PS C:\Users\GAMER\Desktop\hey-lady\web> make fmt
yarn format --write
yarn run v1.22.21
$ prettier --write "packages/**/*.{ts,tsx}" --write
[error] Invalid configuration for file "C:\Users\GAMER\Desktop\hey-lady\web\packages\app\components\AccountProfileEnglishLevel.tsx":
[error] Unexpected token ':'
error Command failed with exit code 2.

项目代码本身无语法问题,但格式化操作始终失败,无法推送到GitHub仓库。

环境信息

  • Prettier v3.1.1
  • Windows 11
  • Node v18.19.0

当前Prettier配置(.prettierrc)

{
  "semi": true,
  "tabWidth": 2,
  "printWidth": 120,
  "singleQuote": false,
  "trailingComma": "none",
  "arrowParens": "always" 
}

问题原因与解决步骤

核心原因

你的package.json中format脚本配置错误:--config参数是用来指定Prettier配置文件路径的,你却把要格式化的TS/TSX文件路径传给了--config,导致Prettier把TSX文件当成JSON配置文件解析,而TSX中的语法(比如:)不符合JSON格式,因此报错。

解决步骤

  1. 修正format脚本
    打开项目根目录的package.json,将format脚本修改为:

    "format": "prettier --write \"packages/**/*.{ts,tsx}\""
    

    (如果需要手动指定配置文件,可添加--config .prettierrc,但Prettier会自动查找当前目录下的.prettierrc,所以通常不需要)

  2. 修复Windows引号问题
    Windows PowerShell对双引号的转义处理与Unix终端不同,若仍报错,可尝试改用单引号:

    "format": "prettier --write 'packages/**/*.{ts,tsx}'"
    

    或直接去掉引号(适用于路径无空格的情况):

    "format": "prettier --write packages/**/*.{ts,tsx}"
    
  3. 验证配置文件合法性
    检查.prettierrc是否为标准JSON:你的配置中最后一行"arrowParens": "always"后面有多余空格,虽然JSON允许,但建议删除多余空格,确保格式严格正确。

  4. 单独测试单个文件
    执行以下命令测试单个文件,排除文件本身的潜在问题:

    npx prettier --write packages/app/components/AccountProfileEnglishLevel.tsx
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:03:27