简介
MixOne是开发桌面应用(Win、Mac、Linux)和浏览器Web的一款工具、其基于Vite实现,编译electron代码和build浏览器web。其拥有简单的工程结构。熟悉前端开发的程序员可以很轻松的开发出桌面应用,它比electron的其他框架更简单,因为无需关心Electron的IPC通讯代码,在任意位置写mixone的语法糖(以Main、NodeJS、PJS开头)即可访问原生功能。可以说是在开发阶段"绕靠"IPC。MixOne也能打包BS架构的web产物,它以多html页面入口+SPA模式兼容存在,使用它可以很好的对大型项目进行微前端进行设计和部署。
一、 Mixone在开发桌面应用的主要特点
1、通过语法糖和注释在开发阶段绕开繁琐的IPC代码。
a. 以Main、NodeJS、PJS开始访问 electron的API和nodeJS包和插件(Plugin JS)。
ini
比如:let path = await Main.app.getPath('documents');
编辑
b. 以注释方式把函数(箭头函数)变主进程代码。以"// @mainProcess"进行注释,如图。
编辑以上两种方式都可以写在
语法糖是简短代码,涉及的变量以调用的函数传递到方法中。注释模式也是以函数为单位,所以内部涉及的变量一定要以参数传递给函数。
被注释为主进程代码的函数不能跨作用域调用,内部的变量只能是在当前作用域中定义的,否则编译到主进程时候会找不到变量。
2、 精简的目录结构。
直观又容易理解,没有任何冗余目录层级。为什么我能做到这么科学的工程结构,请继续关注MixOne的发展,以后为各位讲解!
编辑
编辑
3、多窗口管理和通讯。
MixOne工具支持编译以window.WindowManager.xxx访问来管理窗口的创建、关闭和监听窗口事件。以及向指定窗口发送消息,向所有窗口发送广播。
例如:打开新窗口,以/windows/为根窗口目录打开"/help-window/"。还可以指定窗口参数。
ini
let winInfo = await window.windowManager.openWindow('/help-window/', {
width: 1200,
height: 900
});
关于窗口管理类的用法,请继续关注MixOne后续出的文档。
二、 MixOne的快速安装。
请确保你已经安装了nodejs。建议v20及以上的版本。
项目创建命令:
npm install mixone -g
//创建项目
mixone create mixone-demo1
cd mixone-demo1
npm install //安装依赖 或 yarn
npm run dev
npm run build:win //打包window的exe,最小61M,以后有望优化到18M起。
创建项目中有一些简单的例子,比如窗口管理tab下的最大化、最小化等。但这只是MixOne功能的冰山一角,你要真正的使用MixOne开发一个桌面项目,你需要认证查看文档和github上的例子仓库,github上只是例子仓库,你可以例子中学习到如何使用MixOne
三、 对开发的效率提升
我们从读取文件的例子来看MixOne对于效率的提升有多大?
csharp
const fileContentResult = await NodeJS.fs.readFileSync("D:/file/123.txt", 'utf8')
编辑
从以上图中的对比来看去IPC代码后的优点:
1、 代码量只有原来的 五分之一不到;
2、 书写的位置只要是script标签内即可,而无需区分主进程和渲染京城,光这一点就避免了开发者来回切换目录和文件。
3、不用考虑事件监听应该怎么取名和放在什么位置。这也就为开发者省心,MixOne会去处理这些问题。
4、在书写位置的上下文业务逻辑实现没有受到打扰(去设计IPC而打扰),审查代码也对代码的目的和功能比较直观。
四、 为什么它叫MixOne
顾名思义,MixOne就是混合卸载一个地方的意思,把主进程API、Node调用、主进程插件都写在渲染进程,混合在一起,所以叫MixOne
五、 安全性
MixOne框架是一个编译型的工具,它遵照官方的安全机制去编译,渲染进程无需启用Node功能,所有的原生功能(访问Node和Electron的API)都从预加载中暴露。
MixOne工具的官方地址:
www.npmjs.com/package/mix...