Expo中app.json与app.config.json的区别及选型建议
Expo app.json vs app.config.json:区别与适用场景
虽然Expo官方文档把这俩都归为静态配置,但实际使用中主要是命名规范和使用场景偏好的区别,核心功能(静态JSON配置、无代码逻辑)完全一致,以下是具体细节:
核心区别
命名与历史兼容性:
app.json是Expo从诞生起就支持的默认静态配置文件,绝大多数早期或传统Expo项目都会用它,工具链对它的支持最普遍,不需要额外配置就能被Expo CLI识别。app.config.json是后来为了和动态配置文件app.config.js形成命名统一才新增的选项,属于更现代的命名风格,和项目里的babel.config.json、metro.config.js这类配置文件命名逻辑对齐。
优先级与加载逻辑:
如果同时在项目里放了app.json和app.config.json,Expo CLI会优先读取app.json,除非你通过expo.config.js或者CLI参数显式指定加载app.config.json。
适用场景
选app.json的情况
- 维护老Expo项目,保持历史兼容性,避免不必要的文件更名成本
- 项目只需要纯静态配置,不需要和动态配置
app.config.js配合,遵循最通用的Expo配置习惯 - 团队成员已经习惯
app.json的命名,不需要改变现有认知
选app.config.json的情况
- 项目同时使用动态配置
app.config.js,用统一的app.config.*命名让文件结构更清晰,一眼就能区分静态/动态配置文件 - 追求项目配置文件命名的一致性,和
babel.config.json、metro.config.js等保持相同的命名风格 - 新建的现代Expo项目,想遵循Expo最新的配置体系规范
补充说明
两者的配置结构完全一致,所有在app.json中支持的配置项,在app.config.json里都能正常使用,不存在功能上的差异——本质就是同一个静态配置的两种命名形式,选哪个主要看团队习惯和项目的配置体系规划。
内容的提问来源于stack exchange,提问作者BruceHill
相关产品推荐
相关产品推荐

