乐趣区

关于typescript:用ElectronVue3-来做一个炫酷的插件工具箱

前言

某天,我在不同我的项目之间来回复制代码粘贴。频繁切换编辑器让我倍感繁琐,我在想:“要是能写一个工具,将所有内容复制起来,而后再一个个拷进去就不便多了。”

这个时候测试共事来到了我的旁边,看到我电脑桌面的便笺工具写满了稀稀拉拉的工作事项。示意也想用一个,让我帮他关上。后果到他电脑上发现没有自带的便笺工具。

二话不说,马上就用 electron 写了一个简略的小工具,名为 iHelper,外面蕴含了几个小性能: 便笺,剪贴板记录,待办事项...。

iHelper实现了之后发给共事应用,这个时候 T 共事说:“我也想写点货色,能够加在你的 iHelper 外面吗?”

“那当然能够啊”。正当我筹备把共事加到仓库成员里时,我又想到:“如果 iHelper 能反对运行他人的 web 我的项目,像小程序那样。将一个 web 我的项目以插件为单位增加在软件中并运行,是不是就能让更多的前端共事参加进来,减少本人想要的工具呢”

于是推敲一番,将 iHelper 改成了一个反对上传下载装置的插件平台。并将原先的性能 便笺,剪贴板记录,待办事项 拆分为独自的 web 我的项目。以可自在下载的插件公布到 iHelper 的插件商店中。以此作为学习的我的项目,并记录分享其中的过程。

iHelper

iHelper是一个蕴含工作便当插件的插件工具箱,反对下载安装插件 / 上传公布插件 / 打包插件。

iHelper 中,所有的插件都是一个独自的 web 我的项目。每个 web 我的项目都会有一个配置文件 plugin.json 来形容此插件的信息。当在 iHelper 中下载插件时,其实是从近程服务器下载此插件我的项目打包后的资源文件,并依据配置来将此插件装载进 iHelper 中。

在运行插件时,iHelper会关上新的利用窗体。并且依据 plugin.json 指定的拜访入口文件进行加载。这样就实现了我的项目插件化的成果。

下载 / 文档

iHelper 我的项目仓库

iHelper 插件仓库

iHelper 文档地址

iHelper 安装包下载地址(github)

iHelper 安装包下载地址(gitee,国内较快)

技术选型

桌面利用框架 Electron + Typescript

Node.js 数据库 nedb

渲染过程框架 Vue3 + Typescript

UI 框架 Element-plus

后端 NestJS

性能点

  • 插件新增,插件启动
  • 插件运行,插件窗体治理
  • 插件版本治理
  • 插件开发者模式,API、数据库反对
  • 插件重载,插件打包,插件公布
  • 第三方插件压缩包装置
  • 插件下载,插件装置,插件更新
  • 插件设置
  • 用户账号登录注册
  • 利用设置,快捷键治理
  • 利用更新
  • 利用惯例性能(拖拽,缩放,最小化,托盘,退出 …)

利用性能构思

插件是其余开发者编写的 web 利用

可能增加、打包、公布、装置、运行插件

将各个利用整合为插件零碎的益处:

  1. 工具箱整合多种插件,防止装置多个软件,占用电脑过多空间
  2. 插件体积小,更新效率快
  3. 对立封装的 api 不便各插件执行零碎交互逻辑

在我的项目开发的过程中,也开源了其余依赖我的项目

  1. 剪贴板监听工具——electron-clipboard-observer
  2. vue3 的右键菜单库——vue3-context-menu

最初

如果你想要学习(electron/vue3/ 插件零碎整合)的我的项目,心愿这个我的项目代码和后续的文章能够帮忙到你。

iHelper 的开发过程后续以几篇文章来总结分享,作为一个学习总结

  1. 搭建 iHelper 的我的项目目录架构
  2. 插件的增加以及开发者模式性能
  3. 插件下载、装置、版本治理
  4. 利用设置,插件的设置,快捷键治理,利用更新,惯例性能
  5. …(还有更多待补充)
退出移动版