Expo迁移至EAS Build后.html资源文件无法加载求助
解决EAS Build下HTML模板未被打包的问题
问题根源
从expo build迁移到eas build后,默认资源打包规则不会自动识别.html文件,即便之前assetBundlePatterns配置了其他资源类型,也需要明确添加.html的匹配规则才能让EAS Build将其纳入打包流程。
修复方案
1. 更新assetBundlePatterns配置
修改app.config.json,在assetBundlePatterns中添加.html文件的匹配规则:
{ "expo": { "assetBundlePatterns": [ "**/*.html", // 保留你原有的其他资源规则,例如: "**/*.png", "**/*.svg" ] } }
**/*.html会递归匹配项目所有目录下的.html文件,确保所有模板片段都被打包。如果你的模板集中存放在特定目录(比如src/templates/),可以用更精准的规则:"src/templates/**/*.html",减少不必要的资源扫描。
2. 确认资源引用正确性
确保代码中使用require()加载.html文件的路径无误,示例:
const emailTemplate = require('./templates/email.html');
路径错误会导致资源找不到,务必和文件实际位置对应。
3. 清理缓存后重新构建
旧缓存可能导致资源未被正确识别,执行以下命令清理后再触发构建:
npx expo prebuild --clean eas build --platform android # 或 ios/all
额外排查项
- 检查
.easignore或.gitignore文件,确认没有误排除.html文件; - 如果使用了monorepo结构,需确保EAS Build能正确识别项目子目录中的.html资源,必要时调整
assetBundlePatterns的匹配范围。
内容的提问来源于stack exchange,提问作者Javier Godoy Magaña
相关产品推荐
相关产品推荐

