使用Expo运行create-react-native-app时构建JS Bundle失败
解决create-react-native-app启动时的字体加载错误问题
你遇到的是Expo矢量图标字体文件缺失/加载失败导致的打包中断,这类问题在旧版本的Expo和Node环境里很常见,给你几个针对性的解决办法:
方法1:重置Expo缓存
缓存损坏是这类文件找不到问题的头号原因,先试试清空缓存再启动:
- 按下
Ctrl+C终止当前运行的npm start进程 - 执行缓存重置命令:
expo r -c(如果你的Expo CLI版本不支持这个缩写,就用npm start -- --reset-cache) - 重新启动项目:
npm start
方法2:重新安装项目依赖
大概率是@expo/vector-icons包安装不完整或文件损坏,重新安装依赖能解决这类问题:
- 删除项目根目录下的
node_modules文件夹:- Mac/Linux:
rm -rf node_modules - Windows:
rd /s /q node_modules
- Mac/Linux:
- 删除
package-lock.json文件:- Mac/Linux:
rm package-lock.json - Windows:
del package-lock.json
- Mac/Linux:
- 重新安装所有依赖:
npm install - 安装完成后再次执行
npm start
方法3:升级Expo相关组件
你当前用的Expo 2.3.0版本太老旧了,和Node 6.x的兼容性存在不少坑,尝试升级组件:
- 全局升级Expo CLI:
npm install -g expo-cli(Mac/Linux用户遇到权限问题加sudo,Windows用户用管理员终端执行) - 进入项目目录,升级项目内的Expo依赖:
expo upgrade(如果旧版本不支持这个命令,可以手动修改package.json里的expo版本号为兼容Node 6的较新版本,比如^32.0.0,再执行npm install)
方法4:手动修复字体文件
如果上面的方法都没效果,可以手动排查文件:
- 打开项目的
node_modules/@expo/vector-icons/fonts/目录,确认Entypo.ttf文件是否存在 - 如果文件缺失,直接从
@expo/vector-icons包的官方资源里下载该字体文件,放到对应目录后再重启项目
额外提示
你当前用的Node.js 6.14.0已经停止维护很久了,虽然能跑基础项目,但后续肯定会遇到更多兼容性问题,条件允许的话建议升级到Node.js的LTS版本(比如10.x及以上),能减少很多莫名其妙的环境问题。
内容的提问来源于stack exchange,提问作者Akash Singh
相关产品推荐
相关产品推荐

