expo-cli初始化React Native项目报模板包下载提取TypeError错误
报错根因
该错误是expo-cli 5.4.9版本的已知缺陷,触发逻辑为初始化项目拉取模板包时,模板源返回的包元数据响应为空,代码未做空值判断直接读取返回值的第0位元素,最终抛出Cannot read properties of null (reading '0')异常。常见触发场景包括:
- 本地Node版本过高(18+),和旧版expo-cli内置的网络请求逻辑存在兼容问题,导致请求模板源失败返回空值
- npm/yarn本地缓存损坏,拉取模板时读取到损坏的缓存空数据
- 网络访问默认npm registry不稳定,模板元数据请求中断返回空响应
修复步骤
按优先级依次操作即可:
- 先校验Node版本,expo-cli 5.4.9官方适配Node 14/16 LTS版本,执行
node -v查看当前版本,若版本≥18,通过nvm切换到适配版本:nvm install 16 nvm use 16 - 清除所有相关缓存:
# 清除npm缓存 npm cache clean --force # 若使用yarn则同步清除yarn缓存 yarn cache clean # 删除用户目录下的expo全局缓存 rm -rf ~/.expo - 初始化时手动指定稳定模板版本与官方源,跳过有缺陷的自动模板拉取逻辑:
expo init 你的项目名称 --template expo-template-blank@46 --registry https://registry.npmjs.org/ - 若以上操作仍未解决,直接弃用全局安装的旧版expo-cli——expo官方目前已不再维护全局expo-cli的旧版本,推荐使用npx调用最新的初始化工具,完全规避旧版本逻辑缺陷:
# 卸载全局旧版expo-cli npm uninstall -g expo-cli # 直接用官方最新工具初始化项目 npx create-expo-app 你的项目名称
内容的提问来源于stack exchange,提问作者muyah
相关产品推荐
相关产品推荐

