NW.js的用途
NW.js 基於 Chromium 和 Node.js,從而能夠在桌面app中使用瀏覽器開發技術並直接調用 Node.js 資源,甚至將一個web應用打包到本地也垂手可得。javascript
安裝NW.js
能夠從官網下載;html
推薦在開發時下載是sdk版,以使用DevTools前端
非sdk版也應同時下載,在發佈時使用java
寫一個 Hello World!
package.jsongit
{
"name": "test1",
"main": "index.html",
"window": { "width": 500, "height": 500, "resizable": false }}
入口文件指定爲"index.html"github
若是指定一個js文件爲入口,則能夠先作一些初始化工做,而後手動啓動UI界面:
nw.Window.open('index.html', {}, function(win) {});
web
index.htmljson
<html><head>
<meta charset="UTF-8">
<title>Document</title></head><body>
Hello NWJS~ <br/><br/>
<p>== 右鍵單擊可看到菜單 ==</p>
<div id="os"></div>
<script> //此處演示調用`NW.js`的API var menu = new nw.Menu(); menu.append(new nw.MenuItem({ label: 'Item A', click: function(){ alert('You have clicked at "Item A"'); } })); menu.append(new nw.MenuItem({ label: 'Item B' })); menu.append(new nw.MenuItem({ type: 'separator' })); menu.append(new nw.MenuItem({ label: 'Item C' })); document.body.addEventListener('contextmenu', function(ev) { ev.preventDefault(); menu.popup(ev.x, ev.y); return false; }, false); //此處演示直接調用Nodejs的API var os = require('os'); document.querySelector('#os').innerHTML = 'You are running on <i style="font-size: 30px;">' + os.platform() + '</i>'; </script> </body></html>
運行NW.js程序
cd /path/to/your/app
/path/to/nw .
/path/to/nw
是 NW.js 的二進制運行文件;windows在Windows上是nw.exe,在Linux上是nw,而在Mac則是nwjs.app/Contents/MacOS/nwjs瀏覽器
Linux和Mac可能須要sudo提高運行權限
例如mac上用以下方式啓動:
sudo ~/nwjs/nwjs.app/Contents/MacOS/nwjs .
打包和發佈
下載 https://github.com/jyapayne/Web2Executable
運行下載的圖形界面程序,選定項目目錄
程序會根據項目中的 package.json 自行填好 "App Settings" 和 "Window Settings" 兩個界面中的內容,可自行補充
在 "Export Settings" 中,選擇要發佈的平臺種類,屏蔽一些無用文件等
在 "Compression Settings" 中,選擇壓縮級別;高壓縮級別會帶來相應的啓動時間變長,並可能形成打包後的程序運行失敗
在 "Download Settings" 中,將第一步中下載的「非sdk版程序包的.zip文件」所在的目錄,填入"Download location",而且不勾選"SDK build"選項
點擊右下角的Export按鈕,便可發佈,默認路徑是output
mac下的dmg安裝包製做參考 http://www.macx.cn/thread-2099005-1-1.html
windows安裝包參考 http://www.aichengxu.com/diannao/4906106.htm
參考資料
http://docs.nwjs.io/en/latest/For Users/Getting Started/
http://docs.nwjs.io/en/latest/For Users/Package and Distribute/
* 原創文章轉載請註明出處
-------------------------------------
長按二維碼關注咱們的公衆號哦:
本文分享自微信公衆號 - 雲前端(fewelife)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。