expo build命令打包时读取Git提交记录还是当前文件状态?
Expo 传统构建命令读取文件逻辑解答
核心结论
expo build:android 与 expo build:ios 属于Expo的经典云构建功能,其默认设计就是基于当前分支已提交的Git快照拉取代码执行打包,而非读取本地未提交的文件状态,你观察到的现象属于工具原生逻辑,不存在操作异常。
设计原因
- 经典云构建的工作流需要将代码上传到Expo远端服务器执行编译,基于Git提交拉取代码可以最大程度保证构建产物的可复现性,避免本地未跟踪的临时文件、调试代码、敏感配置意外混入生产包。
- 工具在执行打包前会默认校验Git工作区状态,未提交的改动不会被纳入上传到构建服务器的代码包中,因此仅保存文件不提交的改动不会出现在最终产物里。
临时绕过方案
如果你需要将未提交的本地改动纳入构建,可以在打包命令后添加 --ignore-git 参数,工具会跳过Git校验,直接读取当前本地的所有文件状态上传打包:
expo build:android --ignore-git # 或iOS打包 expo build:ios --ignore-git
如果是使用新版EAS Build的用户,也可以通过在eas.json对应构建profile中添加"gitCommitMessage": "NONE"配置实现类似效果。
内容的提问来源于stack exchange,提问作者Red Five
相关产品推荐
相关产品推荐

