升级Nx仓库Angular11至12时npm i遇JSON解析错误求助
排查Angular 11升级到12时
npm i的JSON解析错误 针对你遇到的npm ERR! Unexpected end of JSON input while parsing near ''错误,按以下步骤逐一排查:
检查package.json语法正确性
这个报错最常见的原因是package.json存在语法问题,比如遗漏逗号、括号不闭合、引号不匹配。可以用jsonlint package.json命令(需先全局安装npm install -g jsonlint)快速校验,也可以手动逐行检查依赖配置段的格式。清理npm缓存并重新安装
执行以下命令彻底清理缓存与旧依赖文件:npm cache clean --force rm -rf node_modules package-lock.json npm install若使用yarn,替换为
yarn cache clean并删除yarn.lock后再重新安装。排查zone.js与tslib的依赖兼容性
Angular 12对这两个依赖有明确版本要求:- tslib 需要 ^2.2.0 及以上版本
- zone.js 需要 ~0.11.4 版本
先确认package.json中这两个包的版本是否符合要求,再执行npm ls zone.js tslib查看依赖树,排查是否有子依赖引入了不兼容版本。若存在冲突,可在package.json中添加resolutions字段强制指定版本:
"resolutions": { "tslib": "^2.2.0", "zone.js": "~0.11.4" }配置完成后重新执行安装。
使用Nx官方升级工具修正依赖
手动修改package.json易出现疏漏,建议用Nx迁移工具自动处理依赖配置:nx migrate @nrwl/angular@12 npm install nx migrate --run-migrations该命令会自动生成符合Angular 12要求的依赖配置,并执行必要的迁移脚本。
内容的提问来源于stack exchange,提问作者Shashank Vivek
相关产品推荐
相关产品推荐

