HarmonyOS hvigor自定义插件不写在同级目录就无法正常运行
我直接在hvigorfile.ts中引用Plugin目录里面的插件,hvigor.nodesEvaluated中的console不执行。
目录结构是这样的:
-Project
–Entry
—hvigorfile.ts
–Plugin
—src
----CustomePlugin.ts
hvigorfile.ts
import { hspTasks } from '@ohos/hvigor-ohos-plugin';
import { CustomePlugin } from '../../Plugin/src/CustomePlugin';
export default {
system: hspTasks, /* Built-in plugin of Hvigor. It cannot be modified. */
plugins:[CustomePlugin()] /* Custom plugin to extend the functionality of Hvigor. */
}
CustomerPlugin中console.log(‘nodesEvaluated’)就执行不到,但是如果把CustomerPlugin.ts放在与Entry/hvigorfile.ts同级目录引用就能执行,或者把hvigor从hvigorfile.ts传到CumstomePlugin(hvigor)中就能执行,是不是就应该这样或者是我的使用方式不对?
CustomerPlugin.ts
import { hvigor, HvigorNode, HvigorPlugin } from '@ohos/hvigor';
import { OhosHapContext, OhosPluginId, Target } from '@ohos/hvigor-ohos-plugin';
export function CustomPlugin(): HvigorPlugin {
return {
pluginId: 'NlRouterAppPlugin',
apply: async (node: HvigorNode) => {
console.log('hello NlRouterAppPlugin!');
hvigor.nodesEvaluated(() => {
console.log('nodesEvaluated');
hapTask(node);
})
}
}
}
function hapTask(currentNode: HvigorNode) {
// 等待全部节点加载完成之后获取子节点信息
console.log('hapTask:');
hvigor.getRootNode().subNodes((node: HvigorNode) => {
// 获取hap模块上下文信息
const hapContext = node.getContext(OhosPluginId.OHOS_HAP_PLUGIN) as OhosHapContext;
const moduleName = hapContext?.getModuleName();
console.log('subNodes:', hapContext?.getOhpmDependencyInfo());
hapContext?.targets((target: Target) => {
const targetName = target.getTargetName();
console.log('targetName:',targetName);
const outputPath = target.getBuildTargetOutputPath();
// 禁用任务
node.getTaskByName(`${target.getTargetName()}@SignHap`)?.setEnable(false);
node.registerTask({
// 任务名称
name: `${targetName}@onlineSignHap`,
// 任务执行逻辑主体函数
run() {
console.log('module Task');
},
// 配置前置任务依赖
dependencies: [`${targetName}@PackageHap`],
// 配置任务的后置任务依赖
postDependencies: ['assembleHap']
});
});
});
}
有没有类似ASM 代码插桩的api,如果没有我看有的demo用的typescript库做的代码插桩,官方是否建议这么做。
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
自定义hvigor插件问题?
217浏览 • 0回复 待解决
自定义hvigor插件问题
124浏览 • 1回复 待解决
HarmonyOS hvigor自定义插件如何获取命令行中的参数
392浏览 • 1回复 待解决
hvigor自定义扩展demo
1043浏览 • 1回复 待解决
自定义hvigor任务,定制编译产物
1160浏览 • 1回复 待解决
HarmonyOS自定义弹窗只能写在组件里面,不能写在方法里面吗?
439浏览 • 1回复 待解决
多module场景Hvigor自定义扩展咨询
837浏览 • 1回复 待解决
hvigor自定义任务中使用npm包
751浏览 • 1回复 待解决
在HAP编译的过程中,自定义Hvigor插件中获取到当前编译的编译模式
1401浏览 • 1回复 待解决
如何在hvigor自定义任务中使用npm包
971浏览 • 1回复 待解决
HarmonyOS CustomDialogController 自定义弹窗无法在 class 和 静态方法中正常弹出
87浏览 • 1回复 待解决
hvigor 自定义插件有没有类似于Gradle 的 Transfrom 功能(扫描源码)?
187浏览 • 0回复 待解决
自定义插件,编译期生成代码问题咨询
252浏览 • 1回复 待解决
Hvigor自定义编译任务如何引用三方库
1257浏览 • 1回复 待解决
HarmonyOS 自定义弹窗是否可以不绑定 this ?
92浏览 • 1回复 待解决
HarmonyOS Slider无法自定义滑轨样式
30浏览 • 1回复 待解决
HarmonyOS 自定义弹窗(CustomDialog)无法关闭
612浏览 • 1回复 待解决
HarmonyOS 全局自定义弹窗无法弹出
47浏览 • 1回复 待解决
HarmonyOS Navigation使用自定义NavPathStack不生效问题
33浏览 • 1回复 待解决
Flutter release模式无法运行,debug模式正常
565浏览 • 1回复 待解决
HarmonyOS 自定义组建运行时错误,this指向有问题
620浏览 • 1回复 待解决
HarmonyOS onPageShow不触发,@Entry装饰的自定义组件
345浏览 • 1回复 待解决
HarmonyOS 自定义popup时,设置popup圆角不生效
44浏览 • 1回复 待解决
混合打包可以运行到真机,但应用无法正常运行
6960浏览 • 4回复 待解决
建议在hvigorfile.ts中定义插件方法,实现HvigorPlugin接口。
参考链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-hvigor-plugin-0000001778674577-V5#section552855418188
关于代码插桩,目前ArkTS只提供了AOP功能,可以参考文档:
https://developer.huawei.com/consumer/cn/doc/best-practices-V5/bpta-application-aspect-programming-design-V5#section7148435113516