使用expo start运行React Native应用报JSON解析错误无法连接怎么办
解决方案
这个错误本质是Metro打包器在扫描项目文件时读取到了损坏的package.json文件,或是缓存中存在异常的JSON解析记录,导致无法正常初始化转换器,可按以下步骤逐一尝试修复:
- 清理本地项目缓存与依赖
先终止正在运行的expo进程,执行如下命令删除损坏的依赖、缓存文件:
执行完成后重新安装依赖:rm -rf node_modules package-lock.json yarn.lock .exponpm install - 启动时清空Metro缓存
不要直接使用expo start启动,添加-c参数强制清空缓存启动:expo start -c - 配置Metro扫描排除规则
报错中提到的异常JSON文件属于.nvm目录下的测试模拟文件,属于Metro误扫描到了项目外的无关目录,可在项目根目录新建/修改metro.config.js,添加排除规则:const { getDefaultConfig } = require('expo/metro-config'); const config = getDefaultConfig(__dirname); // 排除.nvm目录下的所有文件,避免误扫 config.resolver.blockList = [/\.nvm\/.*/]; module.exports = config; - 调整运行环境版本
你当前使用的Node 16.2.0属于早期非正式LTS版本,和部分版本的Expo、Metro存在兼容性问题,可替换为Node 14.x LTS版本,或是Node 16的最新LTS版本(16.20.2),同步配套升级npm版本后重新运行项目即可。
内容的提问来源于stack exchange,提问作者Krix
相关产品推荐
相关产品推荐

