前言本项目API>=13关于鸿蒙项目的组件化运行,已经分享了两种方式了,分别是IDE插件方式和node脚本方式,今天给大家带来第三种方式,Hvigor插件方式;和前两种方式不同的是,它的使用更加简单,不需要我们手动的去切换就能实现组件运行 hvigor插件依赖目前插件已经发布npm平台,版本号为1.1.8,大家可以按照如下方式进行依赖插件,在hvigor目录下的hvigor-config.json5中,找到dependencies,在里面追加 ,我们的插件就依赖完成了。 hvigor插件使用hvigor插件使用和前两种方式完全不一样,它自动会识别你目前要运行的模块,不用单独的再次切换,比如你要运行某个模块,直接在顶部选择之后,直接运行即可。 相关总结目前第一次运行的时候,会在根项目下生成一个harmonyComponent.json5文件,这个文件的主要目的,用于控制插件是否执行,默认为true,每次运行都会执行插件,false不执行插件内容
前言本文API>=13,基于DevEco Studio 5.1.0 Release,版本号5.1.0.828之前在《hvigor插件实现组件化运行》一文中,我们生成了一个文件,主要用于模块运行包和共享包之间切换的控制 当然了,还有很多的应用场景,比如,在构建前,针对代码规范进行检查,如果有不符合规范的地方,输出到一个错误文件中,或者,需要针对项目中的代码进行动态修改等等场景,hvigor插件开发中如何去实现呢? 这就是这篇文章要概述的内容,hvigor插件中的文件操作。 使用FileUtil之前,我们先导入模块,如下代码所示:import { FileUtil } from '@ohos/hvigor';主要方法概述1、判断文件路径是否存在使用exist方法来判断一个文件地址是否存在 console.log("It is a directory"); } else { console.log("It is not a directory"); }4、
能力说明hvigor-ohos-plugin插件支持在hvigorfile.ts里插入使用者的自定义构建任务,并且在运行时获取到自定义的一些编译参数,以及实现修改产物属性的功能。 根据命令参数和hvigor-config.json5文件中的配置,设置hvigor的构建参数,并构造出hvigor对象,此对象贯穿整个hvigor生命周期,从最开始创建出来一直到此次构建结束才被销毁。 执行项目根目录下的hvigorconfig.ts文件,可以在此文件中通过hvigor的相关API来为生命周期注册hook或在构建开始时进行其他处理。4. /hvigorw --sync -p key=hello,控制台打印:hello三、 修改打包产物属性hvigor-ohos-plugin插件支持在hvigorfile.ts里接收部分编译配置,以实现动态配置构建配置 首先在hvigorfile.ts文件中只需定义一个pluginId(任务Id)和name(任务名称),并实现其中的run方法,即可创建一个任务,然后当前node节点添加插件并执行插件的apply方法,然后调用接口
前言本文API>=13,基于DevEco Studio 5.1.0 Release,版本号5.1.0.828上篇文章,我们针对鸿蒙开发中的模块,实现了单一模块运行,使用的是hvigor插件的形式,通过hvigor 插件,我们可以看到,它自动化执行了某些特定的任务,减少了我们的手动干预,确保了构建过程的一致可靠性,可以说,在实际的开发中,极大的提高了我们的开发效率,今天,我们这篇文章,就一起实现一个hvigor插件 目前有两种方式实现hvigor插件,一种是基于hvigorfile脚本,另一种是基于基于typescript项目;两者有着一定的区别,hvigorfile脚本形式,直接写到项目中即可,便于我们针对脚本的更改 第一步:导入接口import { HvigorPlugin, HvigorNode } from '@ohos/hvigor';第二步:实现自定义插件function myPlugin(): HvigorPlugin '); } }}第三步:使用插件export default { system: appTasks, /* Built-in plugin of Hvigor.
前言本文API>=13,基于DevEco Studio 5.1.0 Release,版本号5.1.0.828上篇文章,我们介绍了两种方式,实现了一个hvigor插件的开发,但是只概述了基本的开发流程,并未涉及到具体的代码开发 ,接下来的几篇文章,我们会重点去了解一下,hvigor插件中的那些API用法,以便于实际的插件开发。 首先是HvigorNode,它是hvigor中的节点模型接口,通过它,我们可以获取到模块的配置,属性和任务等。还记得上篇文章中,我们的插件开发是在哪里编写代码的吗? 4、根据节点名称获取节点对象如果你不想通过遍历拿到子节点,你也可以通过已知的模块名字来获取,也就是通过getSubNodeByName()方法。 ,极大的提高了我们编写插件的效率。
为解决这些问题,本次更新引入了 Hvigor 插件,实现动态配置更新,并支持直接依赖插件源码进行构建,显著提升开发体验。 **添加 Hvigor 插件** 在 ohos/hvigorfile.ts 中添加 Hvigor 插件 flutterHvigorPlugin,代码如下: import path from 'path export default { system: appTasks, plugins:[flutterHvigorPlugin(path.dirname(__dirname))] } 4. 4. 总结 本次鸿蒙版 Flutter 优化 ohos 构建过程,通过引入 Hvigor 插件实现了动态配置更新,有效避免了配置文件频繁修改引发的提交冲突。
终于,在能够保存配置信息后,我们可以开始编写插件的挂载功能了。 首先我们需要知道系统为我们在各个关键的环节都预留了插件点给我们,系统运行到插件点时,会检测到是否有插件挂在这个点上,然后执行插件的逻辑! 插件的工作就是找到合适的插件点,挂上去,然后执行自己的逻辑。 插件点,插件钩子,插件接口。。。 在老高这儿是一个概念 官方的插件接口及功能列表 我们的插件需要执行的逻辑在这里,Widget_Contents_Post_Edit类的finishPublish方法 文件路径var/Widget/Contents 有了类本身,我们可以在插件中随意调用他的公共方法!
插件是MyBatis对外开放了四个接口,可以用于自定义扩展。 prepare (BaseSatementHandler)SQL预编译 parameterize 设置参数 batch 批量处理 update 增删改操作 query 查询操作 以上4个接口在 MyBatis实现自定义插件 创建自定义插件主要步骤: 编写插件代码实现Interceptor接口,设置要代理的方法 在mybatis-config.xml中注册插件 下边来简单做一个分表的插件,根据主键 field.set(mappedStatement, sqlSource); return invocation.proceed(); } } 在mybatis-config.xml中注册插件 插件的核心原理 那MyBatis是如何实现插件功能的呢?如果有多个插件它又是如何执行的呢? 插件的实现使用了动态代理、反射和责任链的方式实现。 下边我将抽出MyBatis的插件核心代码。
插件作者收集了多于九千个PWMs从不同的来源和物种,并且使用motif2TF程序,把它们和候选结合TFs联系在一起。并且作者开发了iregulon。允许,预测的cis调控结合位点直接整合进生物网络。 (暂且中断原来文章,因为牵扯知识相对深奥,所以先看一下这个插件的用法,然后继续翻译)http://iregulon.aertslab.org/tutorial.html (暂且中断原来文章,因为牵扯知识相对深奥 ,所以先看一下这个插件的用法,然后继续翻译)http://iregulon.aertslab.org/tutorial.html 手册 iRegulon可以解决以下问题。 iregulon 1)转换excel文件格式成tab-delimited format(.txt) 2)点击file,import,network from table 3)select file,选中 4) column1(microRNA)source interaction 5)column4(target gene name)for target interaction 6)tick show text
一、前言 最近 ChatGPT 的 Plus 用户在 GPT-4 中新增了插件功能, GPT 在插件的加持下如虎添翼。 那么常用的插件是哪些?插件化是什么?插件化有什么好处? 插件化和我们日常开发中哪些设计模式思想一致?GPT 的插件还存在哪些问题?这给我们带来哪些启发? 二、推荐的插件 简单说一下自己比较推荐的插件。 三、插件化 3.1 什么是插件化 "插件化"是指在软件中引入插件系统,这样用户可以按照需要安装和使用不同的插件以扩展软件的功能。 这种模式的设计思想与插件化设计相似,因为插件化设计也是通过插件管理器(类似于工厂类)来加载和管理不同的插件。 五、总结 本文介绍了 GPT-4 一些好用的插件,介绍什么是插件化、插件化的好处插件化和设计模式的关系和 GPT 插件目前还存在的一些问题。
下载完成后,从本地安装IDE插件 确保插件版本与IDE版本兼容 插件安装界面 重启IDE 安装成功后需要重启IDE以确保插件生效 重启后可以在新建项目时看到仓颉相关模板 创建仓颉项目 步骤一:新建项目 50.930: $ hdc shell aa force-stop com.nutpi.cangjiedemp 08:19:51.207: $ hdc shell mkdir data/local/tmp/e4f5714c783d4fb99b4ab804bca7d8a3 " in 344 ms 08:19:51.705: $ hdc shell bm install -p data/local/tmp/e4f5714c783d4fb99b4ab804bca7d8a3 in Open signing configs 08:19:51.752: $ hdc shell rm -rf data/local/tmp/e4f5714c783d4fb99b4ab804bca7d8a3 :用于存放当前工程使用的hvigor cangjie-build-support-x.y.z-cj.x.tgz:仓颉指定的hvigor任务包 hvigor-config.json5:指定工程全局使用的hvigor
hvigor 5.5.1 编译构建工具DevEco Hvigor(以下简称Hvigor),适用于API 10及以上的工程。 ohpm 5.0.6 OpenHarmony三方库的包管理工具。 hvigorw 5.5.1 编译构建工具DevEco Hvigor(以下简称Hvigor),适用于API 10及以上的工程。 ohpm 5.0.6 OpenHarmony三方库的包管理工具。 hvigor-config.json5中properties下新增hvigor.keepDependency字段,用于指定是否保持hsp模块的所有依赖。。 本地单元测试新增支持mock能力。 变更特性 DevEco Studio下架Intelligent Coding Assistant插件。 在进行native调试时,开发者可以同时设置数据断点的最大数量由4个变为2个。
@satis/oh-router简介@satis/oh-router 与 hvigor插件 @satis-sun/modularity-plugin 配合使用,无需手动配置系统路由表,使用注解的方式即可完成系统路由表的配置 下载安装ohpm install @satis/oh-router推荐使用 @satis-sun/modularity-plugin 插件,该插件会自动配置模块依赖 @satis/oh-router、@ satis/common_router无需手动安装配置 工程目录下的 hvigor/hvigor-config.json5{ "modelVersion": "5.0.0", "dependencies modularity-plugin": "^1.0.4" }, ... }配置工程目录下 hvigorfile.tsimport { appTasks } from '@ohos/hvigor-ohos-plugin build() { NavDestination(){ Text("second") }.title("module1 second") } }4.
根据前两篇博文,应该对插件开发有所了解。 前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 SWT知识介绍 之前学过Java的朋友,多少页会一些关于Swing的东西。 那么这里的SWT就是Eclipse插件所应用到的小部件开发框架。 里面包含了大量的桌面控件,并且进行了一系列的优化整合,相对于Swing,极大的减少了内存的消耗。 1 package com.xingoo.plugin.swttest; 2 3 import javax.swing.Scrollable; 4 import javax.swing.text.StyleConstants.ColorConstants 1 package com.xingoo.plugin.swttest; 2 3 import org.eclipse.swt.SWT; 4 import org.eclipse.swt.layout.FillLayout
flash builder与eclipse类似,装插件的方法也差不多。唯一要注意的时候是选择包的问题,如下图所示: ? 不能全选包,只能选择性选择必须要的。 插件安装地址:http://subclipse.tigris.org/update_1.6.x 安装步骤: ? ?
通过以下两个文件完成令牌配置: (1)配置 .ohpmrc 文件 在项目根目录找到(或新建).ohpmrc 文件,添加以下内容(替换占位符为你的令牌): registry=https://gitcode.com/api/v4/ 找不到”报错 首次用 DevEco Studio 打开项目时,极易出现以下报错: Cannot find module 'flutter-hvigor-plugin' 这是因鸿蒙 Flutter 适配插件未自动安装导致 /flutter/bin/flutter pub get),避免调用系统默认的普通 Flutter SDK; 命令执行成功后,将自动完成 flutter-hvigor-plugin 插件安装、Dart 准备运行环境 模拟器:启动 DevEco Studio 中的 HarmonyOS 6 模拟器(建议分配 ≥4GB 内存,避免运行卡顿); 真机:鸿蒙手机开启“开发者模式”,连接电脑并选择“文件传输”模式 八、高频问题解决方案汇总 遇到的问题 具体解决方案 Cannot find module 'flutter-hvigor-plugin' 进入项目根目录,执行 flutter pub get 安装插件
4_Springboot(四) 常用插件 一、Springboot热部署 每当修改了java代码或者是页面代码时,都需要重启服务,很麻烦。 热部署作用:检测到代码发生变化时,自动重新部署项目并重启。 -- 分页插件 --> <dependency> <groupId>com.github.pagehelper </groupId> <artifactId
本文介绍 两个知识点Plugin/Module 插件和模块的联系区别,同时介绍插件和我们的Source中创建多模块。 ** 一、Plugin/Module 插件和模块的联系区别 ** 1> 一个插件至少有一个模块 2>一般插件都是做底层做通用设计的,而模块做的负责的我理解为逻辑 ProjectName.Build.cs public PrivateDependencyModuleNames 与上面相反了,按private理解 二、在Plugin中创建多模块以及在我们的Source中创建多模块 1>我的SelectDialog插件
UE4插件研发 UE4插件扫盲 UE4插件是什么 UE4插件的作用 UE4引擎、项目、插件的区别 引擎自带的插件浏览器 插件目录结构 插件配置文件说明 UE4插件的创建方法 插件代码的执行过程 四种常用模式的插件模板 第三方库的引入 牛刀小试 创建Actor到视图插件 插件打包 插件发布 常见的问题 插件项目案例 UE4插件扫盲 UE4插件是什么 UE4引擎和UE4项目是由各个模块组成的,其主要编程语言是C++。 UE4引擎拥有插件管理模块并提供了插件加载卸载和其他功能接口,所以UE4插件可以自定义功能,因为其独立性强可以发布共享,且使用方便。 插件编译版本 用户使用插件时的UE4版本需要与插件编译时的UE4版本一致,不然会警告提示版本不一致而丢失插件。 所以发布插件时要注明插件所支持的UE4版本号。 插件项目案例 UE4图表插件 B站链接 UE4路径跟随插件 B站链接 更多插件链接,敬请关注。
: ESObject) { NavDestination() { DynamicRouter.getBuilder(name).builder(param); } } }4. 实现路由表生成插件新建插件目录etsPlugin,建议创建在HarmonyOS工程目录之外mkdir etsPlugincd etsPlugin创建npm项目npm init安装依赖npm i --save-dev @types/node @ohos/hvigor @ohos/hvigor-ohos-pluginnpm i typescript handlebars初始化typescript配置. 在应用中使用修改项目的hvigor/hvigor-config.json文件,导入路由表插件{ "hvigorVersion": "4.2.0", "dependencies": { "@ohos ),加载插件import { harTasks } from '@ohos/hvigor-ohos-plugin';import {PluginConfig,etsGeneratorPlugin} from