HBuilderX插件开发常见问题(通用篇)
HBuilderX的插件开发部分基本与vscode插件开发兼容,所以很多地方可以参考 vscode的插件开发
使用hx.window.createWebView创建窗口后,为什么不显示出来?
如果创建时候想立即显示出来,可以通过调用hx.window.showView方法来显示出来
为什么市场页面上HBuilderX最低兼容版本
会渲染成不确定
?
这个是官方bug,如果只更新了REAMDE文件,就会触发这个问题
怎么配置插件的市场链接,像这样
市场链接不用配置,从市场安装的,在插件列表里会自动渲染市场链接地址,渲染显示文本为package.json#description
为什么插件函数执行没有反应/仿佛出错了,但控制台没有报错?
- 有的错在运行时是不能够直接看到的,可以在运行时取消勾选
仅显示...
,这样错误可以看到错误的抛出(但也不是全部,当你怀疑有错,但又没有预期输出的时候,可以通过try进行捕获)。
控制台抛出错误乱码看不了?
有的时候在使用exec或者execSync的时候出现错误,控制台输出会是乱码,无法获取错误的有效信息。
只需要在相应代码的前面再加上一句execSync("chcp 65001")
即可。显然,这还是那个乱码的老问题。
插件配置项怎么排序?
hx的插件配置项排序是按照配置的key决定的,如hx-my-plugin.configA
会排在hx-my-plugin.setAsA
前面。
强行改key的名字又非常别扭,那么可以通过加前缀的方式进行处理,分别改成如下即可按照需求顺序进行排序
hx-my-plugin.a_configA
和hx-my-plugin.b_setAsA
我写了很多个插件,怎么样让它们在插件配置里连续出现呢?
hx对于设置中的插件配置的排序是根据文件夹名称的,你在资源管理器里看到的按名称排序的,在hx配置里是一样的排序
如下,那几个test文件是以字母g开头的,排序在hbuilderx-extension-samples-master
前面
在配置里也是在前面
怎么给插件增加配置文件入口呢?
这个需要在package.json里面进行相关字段的配置,主要有两部分内容:
一是package.json里面的两个configurationFiles和configurationFileInfos两个字段,另外一个就是准备一个要使用的配置文件
如图所示配置,同时插件根目录下还放了一个engines.customized.js
文件
插件配置页就多了其对应的入口
注:配置文件的读取路径是 `${hx.env.appData}/extensions/${extensionId}/${fileName}`
怎么截图右键菜单
如果使用快捷键截图,会把弹出的菜单按没了。那么可以先右键弹出菜单,然后鼠标指针移到层叠菜单项上,这个时候再按快捷键就不会消失了。
when表达式正则为什么匹配不到?
运行时常用的一些位置变量都表示哪里?
- process.cwd(): 这个是HBuilderX下的bin文件夹
- __dirname: 哪个文件里写的,就是根据哪个文件来的
hx.window.showMessageBox
的宽度太小了怎么办?
showMessageBox
虽然支持一部分的html和css内容,但窗体宽度整体上还是由内容撑开。
于是我们可以像下面这样写,定义一部分透明的部分组合起来就可以。
注:代码内为了视觉呈现效果,使用了数组拼接。没有使用多行字符串是因为
showMessageBox
对换行符敏感
未调整宽度前,窗体的title都显示不完全
调整后,宽度明显有了变化
添加其他插件依赖
如果当前插件的运行需要安装其他插件,可以通过配置 package.json#extensionDependencies
实现。
参考 Git Blame,此插件本身并没有注册什么右键菜单,但是下载安装后发现右键菜单里多了很多git操作的选项。
那是因为它依赖中配置了Git,于是在安装Git Blame的时候Git也自动安装了,在plugins目录下可以看到一个Git的文件夹。