# 自定义Hvigor插件是否能进行断点调试

#### 问题现象

自定义Hvigor插件如何调试？

#### 背景知识

*   Hvigor允许开发者实现自己的插件，开发者可以定义自己的构建逻辑，并与他人共享，参考开发Hvigor插件。
*   Node.js的Inspector模块是用于启用和管理V8 Inspector的内置模块，它允许开发者通过Chrome DevTools远程调试和检查运行中的Node.js应用程序。

#### 解决方案

*   hvigorfile.ts文件暂时不支持在DevEco Studio调试。
*   可借助Node.js的Inspector模块通过Chrome DevTools进行断点调试，具体步骤如下：
    1.  在hvigorfile.ts通过open启动调试器并等待连接：
        
        ```
        import { hapTasks } from '@ohos/hvigor-ohos-plugin';
        import { HvigorPlugin, HvigorNode } from '@ohos/hvigor';
        import { open } from 'inspector';
        
        /**
         * open(port?: number, host?: string, wait?: boolean): void
         * port：用于监听检查器连接的端口。
         * host：用于监听检查器连接的主机。
         * wait：阻塞直到有客户端连接。
         */
        open(9229, undefined, true);
        
        // 自定义插件
        function customPlugin(): HvigorPlugin {
          return {
            pluginId: 'customPlugin',
            apply(node: HvigorNode): void {
              debugger
              console.info("hello customPlugin");
            }
          }
        }
        
        export default {
          system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
          plugins: [
            customPlugin()
          ]       /* Custom plugin to extend the functionality of Hvigor. */
        }
        ```
        
    2.  打开Chrome调试页面：chrome://inspect/#devices：
        
    3.  勾选“Discover network targets”，点击Configure按钮：
        
    4.  配置监听接口，勾选“Enable port forwarding”，点击Done：
        
    5.  回到DevEco Studio界面，执行构建：
        
    6.  切换至Chrome调试页面，点击“inspect”，即可开始调试：
        
    7.  调试如果开启了守护进程，二次构建时会因守护进程还在出现以下报错，关闭当前工程的守护进程重新执行步骤5即可：