一、两种开发方式

方式 优点 缺点
hvigorfile脚本 快速开发,直接编辑即可 不易复用和共享分发
TypeScript项目 可复用、可共享分发 开发流程稍复杂

二、基于hvigorfile脚本开发

2.1 开发步骤

在工程或模块下的hvigorfile.ts中直接编写插件代码。

// 1. 导入模块
import { appTasks } from '@ohos/hvigor-ohos-plugin';
import { HvigorPlugin, HvigorNode } from '@ohos/hvigor';

// 2. 编写插件代码,实现HvigorPlugin接口
function customPlugin(): HvigorPlugin {
  return {
    pluginId: 'customPlugin',
    apply(node: HvigorNode) {
      console.log('hello customPlugin!');
    }
  };
}

// 3. 在导出声明中使用插件
export default {
  system: appTasks,
  plugins: [
    customPlugin() // 应用自定义Plugin
  ]
}

2.2 特点

特点 说明
开发位置 工程或模块下hvigorfile.ts
优点 快速开发,直接编辑即可
缺点 多个项目中不易复用和共享分发

三、基于TypeScript项目开发

3.1 初始化TypeScript项目

步骤1:创建空目录 → 步骤2:进入目录 → 步骤3:安装TypeScript

# 全局安装TypeScript
npm install typescript -g

步骤4:初始化npm项目

npm init

步骤5:生成TypeScript配置文件

tsc --init

步骤6:删除verbatimSyntax字段(检查tsconfig.json,删除verbatimModuleSyntax字段,否则无法使用ESM语法)

3.2 开发插件

步骤1:配置镜像仓库(创建.npmrc文件)

registry=https://repo.huaweicloud.com/repository/npm/
@ohos:registry=https://repo.harmonyos.com/npm/

步骤2:添加依赖(package.json中配置devDependencies)

{
  "devDependencies": {
    "@ohos/hvigor": "5.2.2"
  }
}

步骤3:安装依赖

npm install

步骤4:编写插件代码(src/plugin/custom-plugin.ts)

import type { HvigorNode, HvigorPlugin } from '@ohos/hvigor';

export function customPlugin(): HvigorPlugin {
  return {
    pluginId: 'customPlugin',
    apply(node: HvigorNode) {
      console.log('hello customPlugin!');
    }
  };
}

步骤5:导出插件(index.ts)

export { customPlugin } from './src/plugin/custom-plugin.js';

3.3 发布插件

步骤 命令 说明
1. 配置registry 编辑.npmrc 配置镜像仓库地址
2. 生成AccessToken npm login 注册并登录npm仓库
3. 编译 tsc 编译TypeScript
4. 发布 npm publish 打包发布至镜像仓库

注意:如果编译时报错,请检查是否删除了verbatimModuleSyntax字段。

3.4 使用插件

步骤1:添加依赖(hvigor/hvigor-config.json5)

{
  "dependencies": {
    "custom-plugin": "1.0.0"
  }
}

步骤2:安装依赖

方式 操作
方式1 点击Sync Now或File → Sync and Refresh Project
方式2 命令行:hvigorw --sync

步骤3:导入插件(hvigorfile.ts)

import { customPlugin } from 'custom-plugin';

步骤4:使用插件(添加到plugins中)

export default {
  system: appTasks,
  plugins: [
    customPlugin()
  ]
}

四、两种方式对比

对比项 hvigorfile脚本 TypeScript项目
开发速度
代码复用
共享分发 不支持 支持
推荐使用 简单临时需求 正式插件开发

Hvigor插件开发支持两种方式:hvigorfile脚本(快速开发,不易复用)和TypeScript项目(可复用、可共享分发)。TypeScript项目方式需初始化项目、配置.npmrc、添加@ohos/hvigor依赖、编写实现HvigorPlugin接口的插件、tsc编译后npm publish发布,使用时在hvigor-config.json5添加依赖并通过Sync安装,在hvigorfile.ts中导入并添加到plugins。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐