使用HMRouter报错moduleContext is null in hvigorfile
===============================================

#### 问题现象

安装配置HMRouter，在添加plugins:\[hapPlugin()\]时，报错：

moduleContext is null in hvigorfile

#### 背景知识

[HMRouter](https://developer.huawei.com/consumer/cn/doc/best-practices/bpta-hmrouter)是HarmonyOS上的一款页面跳转场景解决方案，主要用于解决应用中页面间的相互跳转问题。该路由器提供了多种功能特性，包括：

*   自定义注解实现路由跳转：开发者可以通过为页面添加@HMRouter注解来配置页面的跳转路径。
*   支持HAR/HSP：HMRouter支持处理不同的页面类型，如单例页面和Dialog页面。
*   路由拦截和生命周期管理：支持定义拦截器和生命周期，用于处理页面跳转前后的逻辑。
*   简化动画配置：允许开发者配置全局动画或特定页面的切换动画。

#### 问题定位

检查hapPlugin插件配置是否正确，是否配置在了entry模块的hvigorfile.ts文件中。

#### 分析结论

根据配置文件分析，hapPlugin插件配置在了工程根目录下的hvigorfile.ts ，会报错找不到hap模块的上下文。

#### 修改建议

1.  在工程根目录下hvigor下的hvigor-config.json5文件中配置HMRouter依赖。
    
    {
      "modelVersion": "6.0.0",
      "dependencies": {
        "@hadss/hmrouter-plugin": "^1.0.0-rc.11"
      },
      "execution": {
       _ // "analyze": "normal",                     /\* Define the build analyze mode. Value: \[ "normal" | "advanced" | "ultrafine" | false \]. Default: "normal" \*/_
        _// "daemon": true,                          /\* Enable daemon compilation. Value: \[ true | false \]. Default: true \*/_
        _// "incremental": true,                     /\* Enable incremental compilation. Value: \[ true | false \]. Default: true \*/_
        _// "parallel": true,                        /\* Enable parallel compilation. Value: \[ true | false \]. Default: true \*/_
        _// "typeCheck": false,                      /\* Enable typeCheck. Value: \[ true | false \]. Default: false \*/_
        _// "optimizationStrategy": "memory"         /\* Define the optimization strategy. Value: \[ "memory" | "performance" \]. Default: "memory" \*/_
      },
      "logging": {
        _// "level": "info"                          /\* Define the log level. Value: \[ "debug" | "info" | "warn" | "error" \]. Default: "info" \*/_
      },
      "debugging": {
        _// "stacktrace": false                      /\* Disable stacktrace compilation. Value: \[ true | false \]. Default: false \*/_
      },
      "nodeOptions": {
       _ // "maxOldSpaceSize": 8192                  /\* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192\*/_
        _// "exposeGC": true                         /\* Enable to trigger garbage collection explicitly. Default: true\*/_
      }
    }
    
2.  将工程根目录下hvigorfile.ts中的hapPlugin配置转移到entry目录下的hvigorfile.ts中。
    
    _// entry__模块的hvigorfile.ts_
    import { hapTasks } from '@ohos/hvigor-ohos-plugin';
    import { hapPlugin } from '@hadss/hmrouter-plugin';
    
    export default {
      system: hapTasks,
      plugins: \[hapPlugin()\] _// 使用HMRouter__标签的模块均需要配置，与模块类型保持一致_
    }