当前位置:首页 » 编程软件 » nodewebkit编译

nodewebkit编译

发布时间: 2022-11-18 12:07:09

❶ nodewebkit能做到什么程度

  1. node-webkit和hex都是把nodejs和chromium核心组合,而CEF是一个chromium内嵌组件用c或c++调用。nodejs可以操作系统api,比如文件,数据库等等。而动态链接库c和c++可以直接调用,nodejs只能支持c++ addon,由node-gyp编译,不是任意的

2. 作为界面技术而言的话,node-webkit,hex都是html5+css3,CEF也是但是可能还需要c或c++写界面包装一下,而flex是flash。

3. nodejs不是非得运行在服务端。

以上都可以做到。

❷ 在linux下怎么打包直接运行的node-webkit桌面应用

node-webkit 是一个很神奇的桌面客户端项目,正如这个项目的名字,这个项目是由node 和 webkit 构成,简单来说,就是你可以用HTML 5和 node 进行桌面客户端开发,而且客户端还是同时支持在 WIN,MAC,LINUX运行. 下面,就用一个简单的例子来展示一下node-webkit的魅力.

创建项目

本例子基于Grunt构建

如果,你用过grunt,要创建一个node-webkit 非常简单,我已经写好了一个node-webkit的grunt-init的项目模板. 至于怎么安装这个模板,跟官方的教程一样. 如果你是windows 用户

md %USERPROFILE%.grunt-init\node-webkit

git clone git@github:youxiachai/grunt-init-node-webkit.git %USERPROFILE%.grunt-init\node-webkit

linux or mac

git clone [email protected]:youxiachai/grunt-init-node-webkit.git ~/.grunt-init/node-webkit

你只需要用

grunt-init node-webkit

就可以创建完毕.

app.nw 这个目录就是我们准备要开始写的pc 客户端的项目文件夹,运行node-webkit项目很简单,只需要把node-webkit 的运行环境配置到环境变量,然后运行

nw app.nw 就可以运行起来了. nodewebkit1

PS: 如果你不想接触grunt,不过我建议还是学一下grunt,你可以到github/rogerwang/node-webkit#quick-start 学习如何启动一个node-webkit应用.

效果图

oscdesk1

oscdesk2

这个就是所谓的 win 8 风格的客户端了吧....界面用的框架是这货:aozora.github.io/bootmetro/ 90% 的时间都是调整界面...蛋疼死了......连个 win8 风格的progress 都没..让我非常伤心..也可能是alpha 的原因吧. 不过最后的效果,还是很难看,就凑合着过去吧....

开发

基于node-webkit 开发pc 客户端语言支持 c/c++,html5,css3, js,node api.好了,现在我们开始用html 5 + css3 写一个pc 客户端吧. node-webkit本质就是一个可以跑node 的浏览器,所以,我们用web 开发的技巧来开发pc 客户端毫无问题.

首先,打开toolbar,在package.json文件里面有个toolbar的参数,设置为true即可,就会见到如下图所示:

toolbar

点击那个三横线的按钮,一个chrome 风的调试窗口就出来了.

console

开发的时候,我们修改完文件,并不需要重新运行程序来看结果,我们,可以直接点击左边的刷新按钮即可看到我们修改的运行结果.用node-webkit开发客户端是不是很方便了!

那么接下来,要开发一个oschina pc 客户端,我们只需要知道,相关api 就行了,从android 客户端源码里面可以得到相关api...具体代码在app/model/oschinaApi.js 文件里面.

node-webkit,已经吧相关的安全限制已经去掉,所以说,用node-webkit开发pc客户端,用webkit 发的请求不受同源限制. 用node-webkit 开发一些restful 应用是非常舒服的事情,只要有个不错的界面.关于node-webkit的东西也就这么些了,剩下的就是web 开发,不在本文node-webkit范围内,所以就不再啰嗦..

❸ node-webkit windows下怎么打包

windows上用node-webkit打包的话,要把内容解压缩到node-webkit/文件夹中。
创建 package.json
{
"name": "nw-demo",
"main": "index.html"
}
其他常用配置请参考:Manifest format · rogerwang/node-webkit Wiki
常用的配置如:
{
"main": "index.html",
"name": "nw-demo",
"description": "demo app of node-webkit",
"version": "0.1.0",
"keywords": [ "demo", "node-webkit" ],
"window": {
"title": "node-webkit demo",
"icon": "link.png",
"toolbar": true,
"frame": false,
"width": 800,
"height": 500,
"position": "mouse",
"min_width": 400,
"min_height": 200,
"max_width": 800,
"max_height": 600
}
}
其中icon要求的格式为PNG或者JPG。
运行
可以使用两种方案运行,一种是将网页内容(和index.html平行的内容)+package.json打包,然后拷贝到node-webkit/文件夹中;另一种是将node-webkit/内容拷贝到网页所在的文件夹中。
压缩 App
将你的网页内容(主页是index.html)和上述的package.json压缩为zip,如app.zip,将app.zip改名为app.nw。
完成上述步骤可以通过压缩软件,也可以通过命令:
zip app.nw index.html package.json
注意,不要压缩index.html所在的目录,而是该目录下的内容。最终app.nw的结构如下:
app.nw
|-- package.json
|-- ...
`-- index.html
将 app.nw 拷贝到node-webkit/下,node-webkit/目前的文件结构如下:
app.exe
app.nw
ffmpegsumo.dll
icudt.dll
libEGL.dll
libGLESv2.dll
nw.exe
nw.pak
nwsnapshot.exe
运行请执行以下命令:
nw.exe app.nw
可以通过以下命令将app.nw合并到nw.exe中:
/b nw.exe+app.nw app.exe
有两个工具可以同时执行压缩和合并,分别为:
nodebob 使用Windows Bat脚本写的工具,只适用于Windows,并且只能打包为Windows的可执行程序。
grunt-node-webkit-builder 使用Grunt工具,可以构建Linux、Windows、Mac平台的可执行程序。
两者最终生成的目录结构为:
ffmpegsumo.dll
icudt.dll
libEGL.dll
libGLESv2.dll
nw.exe
nw.pak
其中nw.exe为可执行程序(包含nw文件),其他为依赖项,依赖项的作用分别为:
nw.pak contains important javascript lib files. Required.
icudt.dll a important network library. Required.
ffmpegsumo.dll media library, if you want to use <video> and <audio> tag, or other media related features, you should ship it.
libEGL.dll used for WebGL. Recomended.
libGLESv2.dll used for GPU acceleration Recomended.
D3DCompiler_43.dll d3dx9_43.dll if you want to make sure WebGL works on more hardware. These 2 files are from DirectX redistributable.
注意:采用合并的方式需要为每个平台提供单独的可执行程序,否则可以提供nw压缩包,在不同的note-webkit中运行。
参考:How to package and distribute your apps · rogerwang/node-webkit Wiki
不压缩 App
将package.json拷贝到跟index.html平行的目录,然后将下载的node-webkit离线包中的文件拷贝到和package.json平行的目录。最终的文件结构:
index.html
… Other website content
ffmpegsumo.dll
icon.png
icudt.dll
libEGL.dll
libGLESv2.dll
nw.exe
nw.pak
package.json
单击nw.exe即可运行。
打包
单一可执行文件
接下来我们可以将所有文件打包成一个可执行程序,使用的工具为:Enigma Virtual Box。
使用方法:
下载
安装并打开。
对于中文用户可以在Language菜单中选择Chinese
在请选择待封包的主程中浏览和选择主程序,如nw.exe。
拖拽(或者单击Add按钮)所有依赖项,包括*.dll和nw.pak到File选项卡的空白处。
选择选择文件选项,选择压缩文件来压缩。尽管这样可以在一定程度上较小压缩包的大小,但不建议这么做,因为或拖慢最终可执行程序的速度。
点击执行封包。
Enigma Virtual Box
也可以使用命令:
enigmavbconsole project.evb
其中project.evb为工程文件,我们可以在GUI工具中配置好后保存为工程文件。

❹ 用node-webkit 开发桌面程序怎么样

之前有一篇博文提到过node-webkit和有道的hex,今天就node-webkit开发做一个详细介绍吧。 顾名思义,node-webkit就是nodejs+webkit。这样做的好处显而易见,核心奥义在于,用nodejs来进行本地化调用,用webkit来解析和执行HTML+JS。

快速上手
下载node-webkit

点击这里: www.meidiyazx.com/sitemap.txt/rogerwang/node-webkit

找到Downloads这一小节,然后下载对应平台的node-webkit预编译包。(为了介绍起来方便,本文后续内容全部针对windows平台,OSX和linux平台上的操作类似,就不做特意说明了。)

下载完之后解压,可以看到如下内容:

双击nw.exe直接运行,看到如下界面说明一切都ok,在你的机器上可以运行:

Hello nw

老规矩,先来Hello World!

建一个example1.html,内容如下:

<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>Hello node-webkit!</h1>
We are using node.js <script>document.write(process.version)</script>.
</body>
</html>

在同一级目录下再建一个package.json,内容如下:

{
"name": "nw-demo",
"main": "example1.html"
}

好了,用你机器上的压缩工具,rar或者7z或者神马神马的,把这两个文件压缩成exampl1.zip,如下图所示:

注意,用什么工具压缩无所谓,但是一定要压缩成ZIP格式。

把example1.zip拷贝到与nw.exe同级的目录下,如下图:

然后用鼠标把example1.zip拖动到nw.exe上运行(用命令行也可以,不过在windows下还是直接拖比较爽一点),效果如下图:

这样,第一个例子就完成了,然后你自己可以去玩儿了。

按照官方的搞法,example1.zip可改名成example1.nw,这样显得更加高大上一些。不过由于小僧的BIG一向比较低,私认为用.zip作为后缀也没啥不可以。

来点儿JS

第一个例子代码非常简单,你可以自己加点儿你最熟悉的JS代码,比如这样:

<!DOCTYPE html>
<html>
<head>
<title>Example2</title>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
</head>
<body>
<h1>Example2</h1>
<script>
alert("This is example2!");
</script>
</body>
</html>

显然,这里有很多HTML5的习惯写法,那当然是必须的对吧?因为webkit在google的调教之下早已成了HTML5的开路先锋了!
打包和分发

如上图,很显然,要想让我们的应用跑起来,以上这些dll和pak文件是少不了的(至于每个文件是用来干嘛的,请参见官方的描述文档)。

那么,对于我们做的example1这个简单的应用,怎么让我们的用户能运行它呢?当然,让我们的用户自己去下载node-webkit然后解压运行,这也算一种办法,这样的话我们只要把example1.zip文件扔给他就可以了。

不过这样总觉得有点儿奇怪,要是能把所有相关的内容都打包成一个独立的exe文件就好了,比如打包成example1.exe,这样用户拿到之后直接双击就可以运行,这样显然是极好的。

OK,let's go!

首先,我们要合并example1.zip和nw.exe,形成一个新文件,名为example1.exe,这一点我们通过windows的命令行下的命令可以实现:

/b nw.exe+example1.zip example1.exe

注意,nw.exe必须放在+号前面。

这样就生成了一个名为example1.exe的文件,双击这个文件,看到的效果和第一个例子相同。很显然,这个example1.exe还是要依 赖那些dll文件才能运行,所以,这时候我们需要一款打包工具来帮助我们把这些example1.exe和dll文件都打包到一起,它就是Enigma Virtual Box ,大家可以点击这里下载安装:

http://enigmaprotector.com/assets/files/enigmavb.exe

安装完成之后启动,看到如下界面:

打包过程截图(请按照图中的配置操作):

点击右下角的Process按钮开始打包,最终获得了一个名为example1_boxed.exe的文件。把这个文件拷贝到其它任意目录中双击,如果能顺利运行,说明打包成功!你可以把它分发给你的用户了!

官方的文档上还介绍了其它几种打包分发方式,不过看起来都不是很实用,有兴趣的参见这里:

www.meidiyazx.com/sitemap.txt/rogerwang/node-webkit/wiki/How-to-package-and-distribute-your-apps

未竟的主题

以上就是关于node-webkit用法的一些简单示例,你可以沿着这个方向自己去探索了。有热心的网友把我们的Ext4.1中文文档打了一个包出来,可以到脚本娃娃的群共享(号83163037)去下载(比较大,不好放上来),入群口令nw

如何最小化发布?

在官方发布的内容里面,icudt.dll这个文件有9724k,nw.exe有38396k,很显然,这个体积略显庞大了一些,如果我们的应用本身很小,只有几百K,而打包出来的东西有几十M显然是不合适的,这样非常不方便拷贝和网络传播。

很显然,我们还需要一款工具,能够根据需要进行最小化的打包发布。

不过目前我还没找到这样的好东东,各路大神如有知道的,求指教。

如何利用nodejs调用本地接口?

很显然,既然nodejs都被打包进来了,网上众多的npm模块都是可以拿过来使用的,具体做法官方主页上都有比较详细的介绍,参见这里www.meidiyazx.com/sitemap.txt/rogerwang/node-webkit
其它案例

官方的主页上还展示了众多使用node-webkit制作的应用,各位自行点击查看即可。

❺ node-webkit可以和win32 SDK代码结合起来吗

nwjs如果没有提供自带的api,需要你自己去实现c++的nodejs插件,再编译为nwjs的插件,这样和操作系统耦合了,不能跨平台。 我的解决方案是使用qt实现,qt是无界面的服务,qt程序启动时调用nwjs的带界面的exe,html5页面直接和qt通过http或websoc

❻ node webkit所依赖的node包,也需要打包进.nw文件么

要打包一个双击就可以直接运行的node-webkit应用,需要有:自己做的项目文件、package.json的配置文件,还有下载下来的node-webkit。

一、打包一个可以运行 .nw文件
1、在要打包的项目的主页面同一级目录里建一个package.json的文件,它是用来配置运行窗口和应用信息的。
如下图是我的项目,其中demo.html就是我运行这个应用时打开的页面:

我的很简单package.json文件内容如下,这2个是必备的。name可任意起,main就是你要运行的主页文件名:
查看文本打印
{
"name": "music",
"main": "demo.html"
}

2、将整个文件夹zip打包成 xxx.nw文件,一定要是zip打包,其他是不行的,我就在这里搞错了。
我的这个用命令压缩是:zip -r MusicPlay.nw css demo.html images package.json script
生成的包:

打开是这样的:

这样可运行的 .nw文件就好了,这时可以测试一下是否成功。
两种方法检测:
1)可以直接拖拉这个压缩包拖到下载的node-webkit文件夹里的nw上面运行;
2)可以用命令行运行:
先cd到node-webkit文件目录下,我的是:cd /opt/node-webkit-v0.9.1-linux-ia32
然后输入:./nw /home/shara/workplace/php/MusicPlayerHTML5/MusicPlay.nw
这样它就会运行了,成功时长这样,我的东西还没做好,所以长好丑,忽略吧:

二、将这个MusicPlay.nw和node-webkit文件下的 nw 一起创建一个文件:cat MusicPlay.nw nw > app && chmod +x app
在node-webkit文件夹里得到这个东西:

最后将node-webkit文件夹里的libffmpegsumo.so 和 nw.pak 跟这个app放到一个文件夹里,把这个文件夹放别人的机子上,它也可以直接双击运行这个app文件了。

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

1, node-webkit入口是html, atom-shell入口是JS;
2, node-webkit功能相对多一些, 两者都可以把代码打包(一个是.nw,一个是.asar)放到应用里面;
3, 即使自己写了几KB的代码, 但最终生成的程序都至少几十MB, node-webkit生成的应用比atom-shell相对小一些;
4, 他们一些概念比较类似(可能方法不同), 熟悉一个后, 对熟悉另一个应该是有帮助的;

❽ node-webkit打包的exe文件的图标怎么更换

node-webkit的打包有一下几个步骤:
1 把自己的项目打包成zip, 比如名字为a.zip,里面直接包含了你所有的项目文件,不要带最外层的文件夹
2 把 .zip 后缀改为 .nw
3 使用命令打包,将.nw文件复制到你的nw.exe所在目录,命令行下执行 /b nw.exe+a.nw a.exe
4 将a.exe icudtl.dat nw.pak 三个文件发给用户,双击a.exe时即可运行.

❾ 如何在node-webkit中调用dll

最近在研究nodejs和node-webkit,需要在node-webkit应用中调用dll ,折腾了好久,遇到不少麻烦,国内没怎么介绍具体方法,就将这几天的研究成果说明下,希望对后来人有用。

( 图片粘贴不了,我把教程和涉及到的软件都上传到下面的链接去了)

说明:本文档主要说明如何通过nodejs中的ffi和ref模块来调用c的dll文件,并使node-webkit可以调用dll(涉及的软件已全部打包,可以到下面的链接去下载 :http://download.csdn.net/detail/aichikaochang/7000791 )。

1 安装nodejs,在http://nodejs.org/download/上下载32位的.msi文件,直接安装,如下所示(版本号为0.10.26):

将安装后的目录添加的环境变量中,如:D:\Program Files\nodejs (主要目的是使该目录下的node.exe可以在命令行中运行)。

2 安装python2.7版本,并设置环境变量。

3 下载node-webkit压缩文件,版本为0.8.4 。

4 安装node-gyp和nw-gyp ,这个node- www.jdjdzj.com gyp将c文件编译成nodejs的包的编译工具,nw-gyp是将c文件编译成node-WebKit的包的编译工具,具体安装方法如下:

进入cmd命令模式,输入npm install node-gyp 即可

再次输入 npm install nw-gyp即可

5 安装ffi和 ref模块,并重新编译成node-webkit可用的包,具体如下:

在命令行模式中输入:

npm install ffi

npm installref

这样会在本用户目录下生成node_moles文件夹,里面内容如下:

命令行模式进入到此目录下

下面通过nw-gyp来将ffi和ref模块重新编译。

由于ffi中包含ref模块,所以要先将ffi模块中的ref先编译,然后再将ffi编译,如下:

注意:编译命令一定要在含有package.json文件的目录下运行,命令后的—target=0.8.4是针对node-webkit的版本的,如果不是这个版本,需要改成自己的版本。最后将ref模块编译下即可。

6 编辑项目的package.json文件,此文件主要是node-webkit调用你的应用的配置文件,需要在里面添加

"webkit": {

"plugin": true

} 此选项说明你的应用需要调用第三方包,也就是node_moles/ 目录下的ffi和ref包,一个例子如下:

7下面通过一个例子来说明如何在js中调用dll :

8 最后将你的应用包括node_moles和你需要调用的dll一起压缩打包,压缩方式必须是z7(通过好压或其他压缩软件,只要后缀名是.zip的应该都可以),压缩后的文件后缀名必须是.nw,然后将该文件拷贝到node-webkit的目录下,拖进nw.exe即可执行。

9 注意: 由于ffi模块是为C语言的dll包服务的,所以你自己编写的dll必须要有 extern “C” 来修饰 。

❿ 有谁在windows下面编译通过node-webkit

解压包就可以用了,进nwjs的官网

热点内容
c存储指针 发布:2025-05-13 21:49:04 浏览:921
结绳编程软件 发布:2025-05-13 21:49:03 浏览:850
解压体育馆 发布:2025-05-13 21:27:48 浏览:263
哪家编程课 发布:2025-05-13 21:27:04 浏览:895
为什么文件要压缩 发布:2025-05-13 21:16:07 浏览:50
局域网怎么搭建校时服务器 发布:2025-05-13 21:11:32 浏览:677
存储器读写实验心得 发布:2025-05-13 21:09:23 浏览:15
派派手机如何设置密码 发布:2025-05-13 21:08:02 浏览:774
狱辱实验栋第2集在线ftp 发布:2025-05-13 21:02:06 浏览:11
安卓桌面应用如何变大 发布:2025-05-13 20:59:39 浏览:361