基于Node.js开发跨平台窗口程序

时间:2022-04-24
本文章向大家介绍基于Node.js开发跨平台窗口程序,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

发表日期: 2017.12.26

分类: Code

Tags: Node.js JavaScript 跨平台 Electron

时间很快,已经是学期末了,这学期没有课程设计,人工智能课程结课的时候留了一个小实验,需要做一个具有人机交互界面的智能系统. 其实整个实验非常简单,核心代码用C语言写的话大致不超过100行,因为系统要求具有一个良好的交互界面,所以更多的精力放在了界面的开发上.正好前段时间看了Electron的开发文档,所以这次的实验就用Node.js来写了,使用Electron最大的好处是具有非常好的跨平台性,整个开发过程中使用HTML CSS JavaScript以及Node.js便可以开发出所需要的桌面程序.

Electron是Github伴随着Atom项目推出的开源跨平台桌面程序的开发工具,在Electron中可以使用纯JavaScript来调用丰富的原生APIs,Electron基于Node和Chromium的V8引擎构建,实际上用Electron开发的程序就是一个精简版的Chromium,这使得我们开发窗口程序就和写Web页面一样. 这也意味着前端开发人员并不仅仅是写网页,也可以利用前端的技术栈来开发桌面应用, Electron开发的程序只需在打包时选择一定的参数,便可以构建出Windows Linux和MacOS下对应的安装包,很大程度上节省了开发的精力.

实际上,Electron并不是唯一一个以Web前端语言开发桌面程序的框架,在此之前就已经有NW.js,它和Electron相似,都是利用web前端语言开发桌面程序,并且具有非常好的跨平台性,但是现在Electron的使用热度已经远远地超过了NW.js,呈现后来者居上的态势.许多著名的项目都是由Electron开发完成,比如Microsoft官方发布的VSCode以及Github官方推出的Atom编辑器等都是基于Electron构建的,尽管是用前端语言开发的程序,但它依旧表现出了非常好的性能,这一切都得益于Google Chromium V8引擎卓越的性能.

通过Electron,我们可以采用前端语言(HTML+CSS+JavaScript)来开发桌面程序的GUI组件( 如上图所示 ), 使用前端语言开发窗口程序比QT和Java的Swing更加简便和灵活. 而且调试可以直接借助Chrome的开发者工具,非常得直观和方便.

如下便是使用Electron开发的人工智能课程产生式实验的软件界面.

当程序开发调试完成, 使用electron-packager工具便可以非常简便地生成Windows (.exe) Linux (.deb or .rpm)以及MacOS (.dmg)三大平台下的安装包, 因为源码中含有JavaScript代码, 所以在打包的时候往往需要进行混淆处理, 以便妥善地隐藏源代码. 如前段时间虾米客户端的"@穷逼VIP"的注释便是由于没有对js混淆而暴露的, 除了虾米音乐还有腾讯微云的Windows和MacOS客户端都是基于Electron开发的, 目前来看,HTML+CSS+JavaScript+Node.js并内嵌Chromium Frame已经是一种非常流行的客户端开发模式,网易云音乐客户端虽然没有直接采用Electron,但也是利用了这样一种开发模式.这一切的一切, 都是建立在v8引擎对JavaScript卓越的解析性能上, 正是因为有v8引擎的强力驱动才会有性能非常好的Chrome浏览器以及以Chrome为基础的众多应用.

Electron

Github Repository: https://github.com/electron

Thank You

如果您发现文章中有错误或表述不严谨的地方,请发邮件到以下邮箱。谢谢您的耐心阅读和指导。