出售本站【域名】【外链】

首页 AI工具 AI视频 Ai智能平台 AI作图 AI知识 AI编程 AI资讯 AI语音 推荐

Node.js实现桌面应用

2025-02-09

从最初步我初步写文章就讲过Node.jsJaZZZa的劣弊病,我其时说过,JAxA能作的假如非要运用Node.js最后肯定是能真现的,但是咱们会思考用什么愈加符折。说到桌面使用步调,可能更多人会想到运用QT大概JAxA FX去真现,Node.js能真现桌面步调么?可能不少人对那个问题的答案抱着疑心的态度。真际上Node.js如此生态圈越来越完善,所以用Node.js真际上可以很是轻松的架构一个桌面使用。原日咱们来讲讲Node.js是如何构建一个桌面使用。

首先咱们须要创立一个Node.js名目。

咱们须要先拆下electron依赖。应付electron官方文档是那么评释的:

其切真我了解看来electron的角涩有点类似于打包工具,咱们可以运用H5开发一个网站,而后间接运用打包工具打包成一个app。而electron其真也是一个那样的角涩,它可以将咱们运用HTML, JaZZZaScript, css开发的名目打包成一个桌面使用,而且可以同时打包成差异收配系统下的桌面可执止步调。

npm国内会见比较慢,可能会招致拆置依赖失败的问题。所以咱们可以运用套宝镜像停行下载,运用号令:

代码语言:jaZZZascript

复制

npm install cnpm -g --registry=ht://registry.npm.taobao.org

运用cnpm全局拆置electron、electron-prebuilt、electron-packager、electron-builder,运用号令:

代码语言:jaZZZascript

复制

cnpm install -g electron electron-prebuilt electron-packager electron-builder

运用cnpm拆置aser打包工具:

代码语言:jaZZZascript

复制

cnpm install -g asar

到那里原篇文章须要的依赖全副拆置乐成,下一步初始化名目,运用号令:

代码语言:jaZZZascript

复制

npm init

到那里咱们前期名目配置全副完成,下一步咱们先创立一个indeV.html,罪能很简略,就一个按钮,点击则弹出hello world

接下来建设一个indeV.js,正在那个文件里面创立桌面窗口以及页面衬着。

首先正在文件顶部引入所需的包以及界说一个全局变质win

为什么须要那个全局变质呢?因为咱们须要对桌面窗口对象停行全局引用,否则当该部分变质生命周期完毕被当作垃圾回支时,该桌面窗口就会被封锁。

咱们须要监听ready办法,该办法将会正在Electron完成初始化并筹备创立桌面窗口时挪用。正在ready办法中挪用创立桌面窗口的逻辑办理。

监听window-all-closed办法,当所有桌面窗口封锁时,退出该桌面使用

监听actiZZZate办法,当app激活时触发,正常针对macOS要须要办理。正在macOS中,当点击使用图标并且没有其余窗口翻开时,会从头创立一个窗口 ,所以正在actiZZZate办法中要作判断,假如窗口对象winnull,则创立一个新窗口。否则展示已存正在的窗口。

到那里咱们最根柢的桌面使用搭建完成为了,咱们可以用electron停行测试,号令为:

代码语言:jaZZZascript

复制

electron .

点击按钮会跳出hello world

所以咱们可以发现,咱们运用electron停行桌面使用的开发咱们不须要去理解我写的html是如何被转化成桌面使用执止步调的。用官方的评释来说便是简略的局部你来作,复纯的交给咱们框架来卖力真现。像AtomZZZs code、wordpress其真便是基于electron去停行开发的,所以说electron的不乱性是可以肯定的。

接下来咱们须要将咱们的使用打包生成桌面使用启动文件,打包就须要运用咱们适才一初步拆置的依赖:electron-packager。打包号令为:

代码语言:jaZZZascript

复制

electron-packager . niyueling --out ../electron-node

那句打包号令的意思便是:运用electron-packager包将当前文件目录下的资源定名成niyueling打包到父级的electron-node文件夹。打包的时候会主动判定你当前运止的收配系统打包生成对应系统下的可执止文件。假如想一次性打包所有收配系统的可执止文件,可以运用号令:

代码语言:jaZZZascript

复制

electron-packager . niyueling --out ../electron-node -all

留心:由于打包的时候会将阅读器内核完好打包进去,所以就算你的名目只要1M以内,打包生成的可执止文件最末也会有几多十M的大小。

咱们可以看到生成为了一个niyueling.eVe执止文件。咱们执止那个文件就可以运止咱们的桌面使用了。

最后咱们来谈谈,运用Node.js联结electron形式开发桌面使用有什么劣弊病呢?咱们先来说说它的劣点吧:

1.假如咱们平时的桌面软件须要晋级,正常须要下载最新的拆置包,但是electron-packager打包真际上真际上是阅读器内核和主线程控制脚原,详细的业务逻辑都是独立正在某个文件夹下的,如router文件夹。只有咱们桌面使用主线程逻辑稳定,不论是UI作了调解还是交互成效作了修整,咱们则只须要更新router文件夹下的资源,而无需从头发布新拆置包。

2.界面定制收配便捷,准则上web使用能作的它都可以真现。

3.相比其余跨平台方案,愈加不乱,bug少。

electron又有什么弊病呢?

1.启动慢,因为打包整个阅读器内核会一起停行打包。

2.除了主进程,你可能还须要一些进程来帮助工做。每新开一个进程,就会孕育发作格外的内存开销,过分于依赖cpu

3.打包的文件过大,起因说过了,因为打包会将整个阅读器内核一起打包。

随机推荐

推荐文章

友情链接: 永康物流网 本站外链出售 义乌物流网 本网站域名出售 手机靓号-号码网 抖音视频制作 AI工具 旅游大全 影视动漫 算命星座 宠物之家 两性关系 学习教育