HarmonyOS 鸿蒙Next中不同配置文件的区别,还有什么?module.json5、 oh-package.json5、 app.json5、 main_page.json
HarmonyOS 鸿蒙Next中不同配置文件的区别,还有什么?module.json5、 oh-package.json5、 app.json5、 main_page.json 在鸿蒙(HarmonyOS)开发中,不同配置文件承担着不同层级的职责,以下是核心区别对比:
1. 作用域与定位
-
app.json5
应用级配置,位于AppScope目录。定义全局属性:{ "app": { "bundleName": "com.example.app", // 包名 "vendor": "example", // 开发商 "versionCode": 1000000, // 版本号 "icon": "$media:icon", // 应用图标 "debug": false // 调试模式 } }▶ 影响整个应用,如权限、设备兼容性、多实例配置。
-
module.json5
模块级配置,位于模块的src/main目录。定义模块能力:{ "module": { "name": "entry", // 模块名 "type": "entry", // 模块类型(entry/feature等) "abilities": [ // 能力组件列表 {"name": "EntryAbility", "srcEntry": "./ets/EntryAbility.ets"} ] } }▶ 控制模块内 UIAbility/ExtensionAbility 组件及资源。
-
oh-package.json5
依赖管理配置,分两种:- 工程级(根目录):管理全局依赖覆盖(
overrides)、脚本(scripts)。 - 模块级(模块根目录):定义包信息与依赖:
▶ 用于 OHPM 包管理,支持 HAR/HSP 发布。{ "name": "@group/package", // 包名(发布HAR必需) "version": "1.0.0", // 遵循semver规范 "dependencies": { // 生产依赖 "@library/utils": "^1.2.0" }, "devDependencies": {} // 开发依赖 }
- 工程级(根目录):管理全局依赖覆盖(
-
main_page.json
页面级配置(非标准名,通常为页面名.json)。定义单页面行为:{ "window": { "navigationBarTextStyle": "black", // 导航栏文字样式 "backgroundTextStyle": "light" // 下拉背景样式 } }▶ 控制具体页面的窗口样式、导航栏等,需与 UI 文件同目录。
2. 核心差异总结
| 配置文件 | 层级 | 关键功能 | 是否必需 | 位置 |
|---|---|---|---|---|
app.json5 |
应用级 | 全局元数据、兼容性配置 | 必需(每个工程) | AppScope/ |
module.json5 |
模块级 | 声明Ability、权限、设备支持 | 必需(每个模块) | src/main/ |
oh-package.json5 |
工程/模块 | 依赖管理、HAR包发布 | 使用OHPM时必需(模块级) | 工程根目录/模块根目录 |
main_page.json |
页面级 | 页面窗口样式、导航栏 | 可选(按需配置) | 与UI文件同目录 |
3. 协作关系示例
flowchart LR
A[app.json5] -->|全局配置| B(module.json5)
B -->|模块能力| C[EntryAbility.ets]
C -->|调用页面| D[main_page.json]
E[oh-package.json5] -->|管理依赖| B
关键说明:
app.json5与module.json5是鸿蒙工程的强制性配置,缺失会导致编译失败。oh-package.json5仅在需要依赖管理或发布HAR包时使用。- 页面级JSON文件(如
main_page.json)仅影响当前页面样式,不参与核心功能逻辑。
更多关于HarmonyOS 鸿蒙Next中不同配置文件的区别,还有什么?module.json5、 oh-package.json5、 app.json5、 main_page.json的实战教程也可以访问 https://www.itying.com/category-93-b0.html
实用的鸿蒙配置指南
更多关于HarmonyOS 鸿蒙Next中不同配置文件的区别,还有什么?module.json5、 oh-package.json5、 app.json5、 main_page.json的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
- app.json5:应用全局配置,包含包名、版本号、图标等。
- module.json5:模块配置,定义Ability、权限、页面路径等。
- oh-package.json5:三方库依赖与HAR包声明,类似npm的package.json。
- main_page.json5:主页面元数据,配置默认启动页和路由信息。
此外还有 build-profile.json5(构建配置)、hvigorfile.ts(构建脚本)等配置文件。
除了你总结的这四种文件,HarmonyOS Next 工程中还有一个关键的工程级配置文件:build-profile.json5。
它位于工程根目录和各模块目录下,用于定义编译构建的配置,与运行时无关。
- 工程级:位于根目录,用于配置全局的签名信息、产品版本(如
default)和所有模块的公共编译参数。 - 模块级:位于模块根目录,用于覆盖或定义该模块具体的构建目标产物(HAP/HAR/HSP)、源文件路径、CPU 架构过滤及资源压缩等。
此外,在 src/main/resources/ 路径下,虽非单一 JSON 文件,但存在用于定义字符串、颜色等资源的资源限定符目录,如 element/ 和 media/,它们通过 string.json、color.json 等资源文件实现多设备适配,也是一种配置形式。

