一、打包一个可以运行 .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文件了。
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中:
copy /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的打包有一下几个步骤:1 把自己的项目打包成zip, 比如名字为a.zip,里面直接包含了你所有的项目文件,不要带最外层的文件夹
2 把 .zip 后缀改为 .nw
3 使用copy命令打包,将.nw文件复制到你的nw.exe所在目录,命令行下执行 copy /b nw.exe+a.nw a.exe
4 将a.exe icudtl.dat nw.pak 三个文件发给用户,双击a.exe时即可运行.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)