HBuilderX 插件开发指南(一):从插件开发到发布的完整流程

前端目前主流使用的IDE工具有VS Code、Sublime Text3、HBuilder X等等

本期我们主要了解HBuilder X,作为前端通用型开发工具,拥有可视化的操作方式,内置相关环境,开箱即用,无需配置nodejs等优点外,对uni-app更是做了特别强化。

随着对HBuilder X的使用,我们已不满足插件市场提供的功能,我们可以针对自己的需求,开发一个插件

插件扩展能做什么?(注解摘取 官方文档)

HBuilderX的插件是基于nodejs的,所有nodejs api都可以使用,如文件操作、调用其他node命令。

除此之外,HBuilderX扩展了大量的js API(与vscode兼容),可以定制很多HBuilderX的功能和界面,比如

  • 添加新的菜单
  • 添加新的命令及快捷键
  • 扩展新的代码块
  • 添加新的view视图,比如在界面左侧项目管理器旁边新增加一个“TODO”视图
  • 对文档进行各种编辑,增删改文字内容、操作光标和选区
  • 对文档进行校验
  • 在控制台打印日志、操作状态栏消息、弹出各种提示框和选择框

准备工作

了解了插件的必要性可行性 ,那么就需要做一下准备工作,为开发插件提供便利。

首先我们需要去开发平台先注册一个DCloud 账号,注意 开发平台开放平台的区别,文章中会一一提到

DCloud 开发平台注册、登录

在这里插入图片描述
没用账号,点击注册
在这里插入图片描述

安装HBuilder X

  • HBuilderX 官方IDE下载地址
    在这里插入图片描述
注册、登录 HBuilder X

安装HBuilder X后,点击IDE左下角进行登录,账号使用DCloud账号和密码

在这里插入图片描述

新建项目

创建一个项目,进行插件项目开发

操作顺序:菜单栏 ---- 文件 ---- 新建 ---- 项目

注意重点!!!!

这里有一个重点,就是项目名称,大家可能会习惯性的起一些语义化或者比较好记忆好区分的项目前缀等等。

这里需要注意,你的项目名称可以随便起,但是必须保证项目名称 与 插件项目创建后的package.json 文件中的 ID 保持一致,否则有授权相关需求,会导致本地开发授权失败

在这里插入图片描述

编辑项目

这里我们简单添加一个窗口右下角消息通知框的提示命令

// package.json
// 注意id 和 项目名称要一致,否则有授权相关需求,会导致本地开发授权失败
// 记得修改name 、publisher、keywords
{"id": "ide-demo","name": "ide-demo","description": "ide-demo","displayName": "针对HBuilderX 开发的demo","version": "1.0.0","publisher": "your name","keywords":["ide"],"engines": {"HBuilderX": "^2.7.0"},"categories": ["Other"],"main": "./extension","activationEvents": ["onCommand:extension.helloWorld"],"contributes": {"commands": [{"command": "extension.helloWorld","title": "demo新命令"}],"menus": {"editor/context": [{"command": "extension.helloWorld","group": "z_commands","when": "editorTextFocus"},{"group": "z_commands"}]}},"extensionDependencies": ["plugin-manager"],"dependencies": {}
}

编辑消息提示框内容

// extension.js
var hx = require('hbuilderx')
//该方法将在插件激活的时候调用
function activate(context) {let disposable = hx.commands.registerCommand('extension.helloWorld', () => {hx.window.showInformationMessage(`
你好,这是我的第一个插件扩展。
这个插件属于 ide-demo
我们的命令生效了`)})//订阅销毁钩子,插件禁用的时候,自动注销该command。context.subscriptions.push(disposable)
}
//该方法将在插件禁用的时候调用(目前是在插件卸载的时候触发)
function deactivate() {}
module.exports = {activate,deactivate
}

运行项目

打开项目,然后点击启动按钮,我们会发现另打开了一个HBuilder X窗口,这个窗口中默认已加载了该插件的功能
在这里插入图片描述

新打开的窗口默认是没有项目的,这是可以选择新建打开,用来调试插件运行效果

这里的项目就是普通的uni项目就可以,只是用来调试

在这里插入图片描述

演示效果

打开dome项目,然后在编辑区右键单击(我们使用的是editor/context,属于编辑器右键菜单),具体的插件开发规则,会在二期文章中具体介绍,这里就不具体描述了

右键单击后,我们发现菜单中有一个新命令 : demo新命令
在这里插入图片描述

点击 demo新命令,我们可以发现窗口右下角,出现一个消息提示框
在这里插入图片描述

发布插件

发布插件有两种操作方式

第一种

从插件市场中,发布插件~,但是不太推荐,发布方式比较麻烦
在这里插入图片描述

第二种

在项目中package.json文件上右键单击,注意这里的项目指的是插件项目(ide-demo),不是demo项目,不要搞混

我们发现菜单栏中,有一个 发布到插件市场的选项,点击它

在这里插入图片描述

完善插件信息

在这里插入图片描述

发布成功后,我们可以就可以去插件市场安装了

搜索我们的插件,如果立马搜索不到,可能是因为延迟的问题

在这里插入图片描述
我们也可以直接进入插件详情页面 https://ext.dcloud.net.cn/plugin?name=ide-demo,链接参数 name 写插件name 即可

在这里插入图片描述

点击安装插件

在这里插入图片描述

点击打开HBuilderX后,默认执行了安装操作。 当安装成功后,我们发现右键菜单中,有了demo新命令选项

顶部菜单栏 ---- 工具 ---- 插件安装 ---- 已安装插件中,也有了ide-demo插件
在这里插入图片描述
到了这一步,我们的插件就算上发布成功了。

但是插件中,如果有授权功能,类似获取用户信息、手机号、邮箱等等,这时候还需要在DCloud用户开放平台注册插件

DCloud 开放平台注册、登录

已有账号 (DCloud账号和密码),直接登录 (必须是企业认证,否则会有提示)

在这里插入图片描述

没用账号,点击注册
在这里插入图片描述

注意该账号必须是企业认证,否则会有提示

在这里插入图片描述

新增插件

在这里插入图片描述
插件注册成功后,我们的列表中,会有如下数据

插件idclient_idclient_secret插件名称插件描述插件图片icon
ide-demojo94444vE8oQDNw9y44444g1qo6VNT5FUDu4cQvbide-demao关于HBuilder X 插件的demo

DCloud授权

DCloud授权登录接入文档

// 具体授权流程,请看 HBuilderX 插件开发指南(二)
let prom = hx.authorize.login({//插件授权 ID   https://open.dcloud.net.cn/client_id: 'nIDmsBQxkI',scopes: ['basic', 'email', 'phone'],description: '获取用户信息和手机号!'})
prom.then(async param => {console.log(param['code'],'------code')
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/475207.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab代码--基于注水法的MIMO信道容量实现

今天接触一个简单的注水法程序,搞懂数学原理即可看懂代码。 1 注水法简介 详细原理可以参考: MIMO的信道容量以及实现 大致理论就是利用拉格朗日乘子法,求解信道容量的最大化问题,得到的解形如往水池中注水的形式,最…

波奇学Linux:动静态库

创建静态库 Makefile文件 mymath.c文件 mymath.h文件 编译main.c文件 gcc 编译时会把在系统目录中寻找头文件和库文件,文件不在系统目录中用参数 -I 头文件所在文件夹/ -L 库的地址文件夹 -l除去lib和后缀。 拷贝文件到系统目录即可不用参数 库的安装类似于把头文件…

【51单片机】如何设置中断函数(场景:在定时器工作完跳转到中断程序时,怎么识别我们的中断程序在哪里呢?)

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 本章是【利用定时器和中断实现一个简单项目】中的一部分,感兴趣的老铁可以跳转传送门查看传送门 欢迎订阅 YY滴C专栏!更多干货…

Ant Design Card 组件展示图片

文章目录 Ant Design Card 组件展示图片理解card组件结构隐藏卡片内容区域 下拉时加载图片卡片加载更多代码 分页的方式加载图片列表【推荐】实现思路代码demo缩略图在card组件下发显示图片文件名卡片操作 分页 Ant Design Card 组件展示图片 官方文档: Card卡片组…

二维码的颜色怎么改变?轻松3步修改二维码样式

怎么修改二维码的颜色呢?一般我们制作的二维码或者经过系统生成的二维码大多都是黑白颜色的,有些小伙伴会觉得不太美观无法满足自己的使用需求。那么对于想要修改二维码样式的小伙伴,可以使用二维码生成器的二维码美化功能来处理,…

Vue3

目录 一、 Vue3简介 1. 性能的提升 2. 源码的升级 3. 拥抱TypeScript 4. 新的特性 二、 创建Vue3工程 1. 基于 vue-cli 创建 2. 基于 vite 创建(推荐) 3. 一个简单的效果 三、Vue3核心语法 1. OptionsAPI 与 CompositionAPI (1)Options API …

2024春日营销三大内容趋势,种草爆文轻松get丨小红书数据分析

春季是市场迎来消费焕活的新周期,也是新一年品牌实现生意高速起步的必争节点。一年之“计”在于春,春日营销,吹响品牌营销第一声号角。那么,春日营销在小红书上有何内容趋势,跟着小编的脚步一起来看看~ 内容趋势 1、亲…

网页设计升阶秘籍:用Bootstrap打造响应式网站!

介绍:Bootstrap是一个流行的前端框架,它集成了HTML、CSS和JavaScript,旨在帮助开发者快速构建响应式和移动优先的网站。以下是Bootstrap的详细介绍: 响应式设计:Bootstrap的核心特性之一是其响应式布局系统&#xff0c…

相机图像质量研究(34)常见问题总结:图像处理对成像的影响--拖影

系列文章目录 相机图像质量研究(1)Camera成像流程介绍 相机图像质量研究(2)ISP专用平台调优介绍 相机图像质量研究(3)图像质量测试介绍 相机图像质量研究(4)常见问题总结:光学结构对成像的影响--焦距 相机图像质量研究(5)常见问题总结:光学结构对成…

集团企业大数据应用:突破痛点,释放数据价值

在数字经济日益崛起的背景下,集团企业以其管理范围广泛、业务领域多元化和分支机构复杂化的特性,在市场竞争中扮演着重要角色。为了维持和提升这种竞争力,大数据应用成为了集团企业不可或缺的战略工具。然而,在实际应用中&#xf…

计算机网络-数据通信基础

目录 前言 一、数据通信基本概念 二、数据通信相关知识1 总结 前言 正在学习计算机网络体系,把每日所学的知识梳理出来,既能够当作读书笔记,又能分享出来和大家一同学习讨论。 一、数据通信基本概念 基本概念:信源、信道、信宿&…

wps快速生成目录及页码设置(自备)

目录 第一步目录整理 标题格式设置 插入页码(罗马和数字) 目录生成(从罗马尾页开始) ​编辑目录格式修改 第一步目录整理 1罗马标题 2罗马标题1一级标题 1.1 二级标题 1.2二级标题2一级标题 2.1 二级标题 2.2二级标题3一级标…