composer.json 报错“unexpected token }”是因json语法错误,如多余逗号、中英文标点混用、bom头或换行符问题;需用编辑器校验、composer validate –strict、php json_decode定位及ci预检综合排查。
Composer.json 文件报错:Unexpected token } in JSON at position xxx
这是最典型的 JSON 语法错误,composer.json 里多了一个逗号、少了一个引号,或者用了中文标点。JSON 不容忍任何格式偏差,哪怕结尾多一个逗号都会让 composer install 直接失败。
- 用 VS Code 或 PHPStorm 打开
composer.json,开启「JSON 语言模式」——它会实时标红语法错误位置 - 不要手动写
require字段的版本号,比如"monolog/monolog": "3.0.0"写成"monolog/monolog": "3.0.0",(末尾逗号)在对象最后一项是非法的 - 检查所有双引号是否为英文半角,中文引号
“”或全角逗号,会导致解析器直接崩溃 - 如果从网页复制配置,先粘贴到纯文本编辑器(如记事本)中再转过去,避免隐藏控制字符
validate 命令不报错,但 composer install 仍失败
composer validate 只校验 JSON 结构和基本 schema,不验证包名是否存在、版本是否合法、PHP 版本约束是否满足。它通过 ≠ 能装成功。