使用npm全局安装expo-cli时报FETCH_ERROR无效JSON响应错误如何解决
排查与解决方案
你遇到的Unexpected end of JSON input错误本质是npm获取包元数据时得到的JSON响应不完整,大概率由本地缓存损坏、npm版本bug、镜像源访问不稳定三类问题导致,按以下步骤依次排查即可:
- 第一步:强制清理损坏的本地npm缓存
执行命令:npm cache clean --force - 第二步:使用镜像源临时安装,避免官方源响应截断
直接执行带临时源参数的安装命令:
如果需要长期使用该镜像源,可额外执行npm install -g expo-cli --registry=https://registry.npmmirror.com --legacy-peer-depsnpm config set registry https://registry.npmmirror.com - 第三步:升级npm到稳定版本修复原生bug
你当前使用的npm@7.5.2属于7.x早期版本,存在依赖解析、网络请求相关的已知bug,先升级到8.x稳定版:
升级完成后再次执行expo-cli安装命令npm install -g npm@8 --registry=https://registry.npmmirror.com - 第四步:针对单个包的解析错误单独预安装
如果报错固定指向某一个包(比如你最后报错的react-dev-utils),先单独全局安装该包:
完成后再安装expo-clinpm install -g react-dev-utils --registry=https://registry.npmmirror.com - 第五步:手动删除缓存目录重试
以上步骤都无效的情况下,先执行npm config get cache获取npm缓存目录路径,手动删除该目录下所有内容后再次执行安装命令。
内容的提问来源于stack exchange,提问作者Freduah Gideon
相关产品推荐
相关产品推荐

