Ubuntu下expo init下载提取模板报TypeError解决方法
Expo初始化项目报错排查解决方法
前置清理(解决安装阶段遗留的异常问题)
旧版全局expo-cli已停止维护,安装时出现的批量依赖弃用警告、26个安全漏洞均为该旧版本的已知问题,先做彻底清理:
- 卸载全局安装的异常版本:
npm uninstall --global expo-cli - 强制清理npm缓存,避免损坏的缓存包导致后续模板拉取解析失败:
npm cache clean --force - 修复Ubuntu下常见的npm目录权限问题(如果之前全局安装用过sudo大概率有权限错乱):
sudo chown -R $USER:$USER ~/.npm - 删除之前初始化失败生成的残缺项目目录,避免半生成的文件干扰后续流程:
rm -rf /home/ntpl/Documents/tutorial/native/newapp/
解决模板拉取TypeError与app.json不存在报错
遇到的TypeError: Cannot read properties of null (reading '0')是旧版expo-cli拉取模板时拿到空响应、解析模板列表失败导致的,后续的ENOENT找不到app.json是模板提取流程中途终止,没有生成核心项目文件的连锁报错,按以下步骤处理:
- 不要使用全局安装的旧版cli,直接用官方当前推荐的无全局安装方式初始化项目,命令会自动拉取最新的稳定版初始化逻辑:
npx create-expo-app newapp - 如果执行上述命令时仍然出现模板拉取失败,先将npm源切为官方源测试(部分第三方镜像同步延迟会导致模板包拉取为空):
npm config set registry https://registry.npmjs.org/,初始化完成后可再切回常用的国内源。 - 初始化完成后进入项目目录执行
ls,确认目录下存在app.json、package.json等核心文件后,执行npx expo start即可正常启动开发服务,不会再出现文件不存在的报错。
补充说明:如果必须使用旧版expo-cli的工作流,需要将Node.js版本降级到16.x,旧版expo-cli不兼容Node 18及以上版本内置的fetch实现,也会触发模板拉取的空值解析错误。
内容的提问来源于stack exchange,提问作者Abhiram P Jayan
相关产品推荐
相关产品推荐

