鸿蒙 构建:Hvigor插件开发(二)
·
一、两种开发方式
| 方式 | 优点 | 缺点 |
|---|---|---|
| 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。
更多推荐




所有评论(0)