Standalone-Anwendungen mit node-webkit
Gestern habe ich ein wenig in node-webkit reingeschnuppert. Damit sollen sich ganz einfach Desktop-Anwendungen auf Basis von HTML, JavaScript und Node.js erstellen lassen. Die erstellte Anwendung lässt sich dann relativ einfach für verschiedene Betriebssysteme verpacken. Für nicht allzu rechen-intensive Spiele scheint mir das recht interessant. Tatsächlich verwendet auch das kürzlich erschiene A Wizard's Lizard node-webkit [1].
Für eine kleine Demo habe ich das Beispiel von three.js genommen und als Anwendung verpackt. Das HTML und JavaScript lasse ich hier mal aus. Mein package.json
für ein Fenster ohne Toolbar sieht wie folgt aus:
{
"main": "index.html",
"name": "nw-demo",
"window": {
"frame": true,
"height": 600,
"kiosk": false,
"toolbar": false,
"width": 900
}
}
Den Inhalt des Projekt-Verzeichnisses verpackt man als nächstes als ZIP-Archiv:
zip -r demo.nw *
Diese Datei lässt sich mit nw demo.nw
ausführen, benötigt aber eben weiterhin node-webkit auf dem System. Im nächsten Schritt wird node-webkit daher in das Archiv integriert:
cat ~/node-webkit-v0.10.5/nw demo.nw > demo && chmod +x demo
Versucht man nun ./demo
auszuführen, gibt es eine Fehlermeldung:
[13445:1019/161018:FATAL:content_main_runner.cc(751)] Check failed: base::i18n::InitializeICU().
Im selben Verzeichnis wie die Standalone-Anwendung müssen auch die Dateien nw.pak und icudtl.dat liegen. Beide Dateien finden sich im selben Verzeichnis wie nw
, hier also ~/node-webkit-v0.10.5/
. Einfach herüberkopieren und die Anwendung lässt sich starten.
Meine kleine Demo habe ich auf GitHub hochgeladen. Darin befindet sich auch ein Build-Skript für Linux, das sich um alles kümmert. Es muss nur der Pfad zur node-webkit-Installation angepasst werden.
[1] forum.lostdecadegames.com/topic/115/node-webkit-and-steam