问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何把nodejs例子编译桌面客户端应用

发布网友 发布时间:2022-05-14 21:58

我来回答

2个回答

懂视网 时间:2022-05-15 02:20

这篇文章主要介绍了windows环境下用node-webkit把web应用打包成桌面应用的教程,需要的朋友可以参考下

node-webkit是一个Chromium和node.js上的结合体,通过它我们可以把建立在chrome浏览器和node.js上的web应用打包成桌面应用,而且还可以跨平台的哦。很显然比起传统的桌面应用,在某些特定领域用html5+css3+js开发的web应用更加简单和高效,而且还可以使用node.js的功能,所以node-webkit还是很有用处的。

下面我通过一个简单的demo来介绍怎么样把一个web应用打包成一个可执行文件(这里只介绍windows环境)

首先新建一个index.html文件,作为我们这个demo的入口页面,我们暂且就把这个页面当成一个完整的web应用吧。内容随便写点什么,比如:

然后创建配置文件 package.json,内容如下:

其中的main属性就是用来指定入口文件的,这个属性的值可以是本地文件,也可以是远程网址,这样就相当于可以把一个远程的web应用直接变为一个桌面应用了。

除了name与main这两个属性外,还有很多其他有用的属性可以配置,比如指定应用的图标,显不显示浏览器的工具栏,指定浏览器的初始大小等等,具体的配置参数文档可看这里https://github.com/rogerwang/node-webkit/wiki/Manifest-format

现在我们有了两个文件了。

然后将index.html和package.json这两个文件压缩到一个zip压缩包里,命名为app.zip

现在app.zip这个压缩包里的内容应该是这样的:

然后把app.zip这个文件的扩展名改为nw,变为 app.nw

然后下载一个windows版本的node-webkit,解压后得到一个文件夹:

之后我们之前得到的app.nw这个文件就可以用nw.exe来执行了,直接把app.nw拖到nw.exe上就可以了。运行结果如下:

跟在chrome中打开index.html这个页面的效果差不多,当然你可以通过配置package.json这个文件,来隐藏浏览器的工具栏或边框,来使它更像是一个桌面软件。

因为nw文件的运行需要node-webkit环境的支持,所以我们还需要把app.nw这个文件跟node-webkit的环境文件一起打包成一个可执行文件。

首先打开windows的cmd,然后输入如下命令:

copy /b nw.exe+app.nw app.exe

注意文件路径要根据你的实际情况进行变动,这里假设app.nw放在了node-webkit的主文件夹里,然后输出的app.exe也会在这个文件夹里。

执行命令后我们得到了 app.exe 这个可执行文件。

到了这步,我们已经得到了app.exe这个文件,但如果只有app.exe这个文件还是不够的,这个可执行文件的运行还需要几个dll文件的支持。

其中 nw.pak 与 icudt.dll 这个两个文件是必须要的。

ffmpegsumo.dll 文件是媒体支持文件,如果你的html页面中用到了<video>或<audio>或其它与媒体相关的东西,则必须带上这个文件。

libEGL.dll 和 libGLESv2.dll 这个两个文件则是使用webGL或GPU必须要的

最后我们得到的就是这样一个文件夹:

执行app.exe就可以运行我们的demo了。

但我们大多数人想的是给用户一个exe文件,用户就可以使用了,不用再附带一些其他文件。

嗯,所以我们还可以把app.exe跟其他的文件再打包一次,把上图中的所有文件变成一个可执行文件,用户只要得到这个文件,就能运行我们的应用了。

做这步我们需要一个软件叫Enigma Virtual Box,首先下载和安装这个软件,然后打开它。

然后在Enter Input File Name那里输入我们的app.exe的路径,在Enter Output File Name那里填写我们要把打包出来的可执行文件输出到哪里。最后是把除app.exe外的其它文件拖入到Files那里,遇到提示的话默认就可以了。

最后点击右下角的Process按钮,就大功告成了。

最后我们得到了一个 app_boxed.exe 的文件,只要把这个文件交给用户,用户就可以运行了。

node-webkit虽然方便,但有个很大的缺点是得到的可执行文件有点大,大家在可以在衡量利弊后决定使不使用。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

使用原生JavaScript实现放大镜效果

在nodejs中通过redis作为缓存实现的封装缓存类

在Express中使用bcryptjs密码加密

热心网友 时间:2022-05-14 23:28

1, node-webkit入口是html, atom-shell入口是JS;
2, node-webkit功能相对多一些, 两者都可以把代码打包(一个是.nw,一个是.asar)放到应用里面;
3, 即使自己写了几KB的代码, 但最终生成的程序都至少几十MB, node-webkit生成的应用比atom-shell相对小一些;
4, 他们一些概念比较类似(可能方法不同), 熟悉一个后, 对熟悉另一个应该是有帮助的;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
i9502联通卡放置用认准卡位 I9502,SIM1切换SIM网络上网问题 如何批量删除iphone5s通讯录 中联通信飞越JSY2000-FY(832端口)一般规格 中联通信飞越JSY2000-FY重要参数 JSY2000-FY如何设置离位转移? 特权分机如何代普通分机设置叫醒? 中联的JSY2000-FY如何用话机设置免打扰? 垂直分析法分析什么表 零基础学雅思一年多少费用 20铬钼钛的焊接方法 智能手机换屏或触膜由于贴粘不牢而产生的一系列后遗症而烦恼吗 手机屏幕坏了,换屏幕有没有什么后遗症 制作米豆腐需要哪些原料啊 湖南的米豆腐用什么米做比较好?据说江苏籼米不大好。求解~ 米豆腐用什么米做最好呢?米必须要磨浆做吗? 茶花换盆后不服盆,出现掉叶子的现象该怎么办? 茶花落叶非常严重,有什么补救的办法吗? 茶花掉叶怎么办? 苹果手机用什么软件下载不闪退。 用同步推和91都闪退和密码。我没越狱 看网页不会闪退的手机护眼软件下载 下载什么软件可以不闪退 黑莓手机的螺丝要怎么下啊,我家的全部和他对不上。什么情况啊。 我手机螺丝是T5的,但是我拆久了就上面的那个六角星快要成圆形了,问问怎么把那个螺丝拧下来? 描述戏曲的词语 常用在戏曲中的四字词语 2019年社会保险基数上下限 关于统一2019年度各项社会保险缴费工资基数 2019东莞社会保险缴纳比例 石家庄2019社会保险缴纳比例 A4大小不干胶标签纸的胶水强度是多少? 肺结核各个分型的区别 或者说特点 如最易导致什么病啊 或者 四个分型中各型的 特殊点! 肺结核*是什么病?和一般的肺结核有什么区别吗?带传染性吗?这种病有生命危险吗? 肺结核分几型,各型X线表现如何?求大夫帮帮忙。 肺结核的主要传染源的临床分型是? 如何实名认证 小孩吃鸡蛋多了有什么坏处 一岁多的宝宝一天吃三个鸡蛋会不会有影响 2岁宝宝吃鸡蛋吃多了会怎样 两岁宝宝鸡蛋吃多发烧 听说宝宝吃太多鸡蛋不好是真的吗? 实名认证怎么弄 这样的姿势照相叫什么?拍照姿势 长春有没有通化葡萄酒专卖的? 长春金伯爵葡萄酒有限公司怎么样? 长春哪里卖好红酒 为什么改不了和昵称 长春市法兰红葡萄酒业有限公司怎么样? 吉林省雪驰葡萄酒文化产业有限公司怎么样? 长春净月潭旅游经济开发区农大奥野葡萄酒厂怎么样?