You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 12:27:06