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)。
    • 模块级(模块根目录):定义包信息与依赖:
      {
        "name": "@group/package",        // 包名(发布HAR必需)
        "version": "1.0.0",              // 遵循semver规范
        "dependencies": {                // 生产依赖
          "@library/utils": "^1.2.0"
        },
        "devDependencies": {}            // 开发依赖
      }
      
      ▶ 用于 OHPM 包管理,支持 HAR/HSP 发布。
  • 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.json5module.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

3 回复

实用的鸿蒙配置指南

更多关于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.jsoncolor.json 等资源文件实现多设备适配,也是一种配置形式。

回到顶部