Node如何同时运行两个文件?

Node如何同时运行两个文件?,第1张

打包一个双击就可以直接运行的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文件了。

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时即可运行.


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7643211.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-08
下一篇 2023-04-08

发表评论

登录后才能评论

评论列表(0条)

保存