Verpacken einer Node.js-Webanwendung als normale Desktopanwendung [closed]
Lesezeit: 6 Minuten
Alex Wayne
Ich habe ein bisschen gesucht, aber ich kann kein vorhandenes Tool dafür finden.
Ich habe einen Node.js-Webserver, der so konzipiert ist, dass er auf Ihrem eigenen Computer läuft und einige schicke Dinge für Sie erledigt. Es wäre ziemlich genial, wenn ich doppelklicken könnte MySnazzyThing.app anstatt Node.js und npm zu installieren und auszuführen node mysnazzyapp.js auf der Kommandozeile.
Das .app ausführbare Datei würde den Node.js-Server hochspulen und eine einfache native Datei öffnen WebKit Fenster, das zeigen würde, was normalerweise eingeschaltet wäre localhost:3000 wenn ich auf der Kommandozeile laufen würde.
Diese native Anwendung könnte dann beispielsweise über den Mac verteilt werden Appstore. Und bam, eine Node.js-Desktopanwendung.
Gibt es ein solches Tool? Oder gibt es technische Gründe, warum das nicht so funktionieren würde, wie ich es mir vorstelle?
Dies ist die Shell von GitHub Atom und Microsofts Code Redakteure verwenden. Es ist Node-Webkit sehr ähnlich, obwohl es zuerst das Skript ausführt und Sie eine Ansicht/ein Fenster für den Benutzer erstellen müssen. Es gibt einige andere geringfügige Unterschiede, aber es lohnt sich, sie sich anzusehen.
Das Wesentliche ist, dass es die JavaScript-Engine im Grunde erweitert, damit Sie eine webbasierte Anwendung unterstützen können Node.js’ erweitertes Objektmodell und Module … Sie packen dann Ihre Paket.jsonstart.html Module und JavaScript-Dateien in eine ZIP-Datei (mit der Erweiterung .nw) und führen Sie sie mit nw(.exe) aus. Es sind Windows-, Mac- und Linux-Builds verfügbar.
Neutralinojs ist ein leichtgewichtiges und portables Entwicklungs-Framework für Desktop-Anwendungen. Damit können Sie leichtgewichtige, plattformübergreifende Desktop-Anwendungen mit JavaScript, HTML und CSS entwickeln. Sie können Neutralinojs mit jeder Programmiersprache erweitern (über Erweiterungen IPC) und Neutralinojs als Teil einer beliebigen Quelldatei verwenden (über untergeordnete Prozesse IPC).
Tauri ist ein Toolkit, das Entwicklern dabei hilft, Anwendungen für die wichtigsten Desktop-Plattformen zu erstellen – mit praktisch jedem vorhandenen Frontend-Framework. Der Kern ist mit Rust aufgebaut und die CLI nutzt Node.js, was Tauri zu einem wirklich polyglotten Ansatz zum Erstellen und Verwalten großartiger Apps macht.
Nebenbei: Dienstleistungen …
Ich kann nicht für OS X als .App sprechen, aber es könnte durchaus möglich sein, eine Hintergrunddienstinstallation in Node.js und einen Link zu einer “lokalen” Site auf dem Desktop zu erstellen. Die meisten Browser haben eine Option, um nicht alle Funktionen anzuzeigen (ich weiß, dass dies insbesondere bei Firefox der Fall ist).
Ich weiß, dass Ihre Frage insbesondere an OS X gerichtet ist, aber in Windows können Sie NSSM verwenden, um alles als Dienst auszuführen, und ich habe es für Node.js-basierte Dienste in Windows verwendet. Ich denke jedoch, dass einige der anderen oben genannten Optionen je nach Ihren Bedürfnissen besser sind.
Es sieht so aus, als ob node-webkit der Gewinner unter diesen ist. Große Entwicklerbasis, gute Dokumentation, unterstützt von Intel.
– Dan
26. Juni 2013 um 4:57 Uhr
gerty, danke … Ich habe meine Antwort aktualisiert, um nexe aufzunehmen, und node-webkit zum Spitzenplatz gemacht … sieht so aus, als ob appjs etwas veraltet wird.
– Verfolger1
26. Juni 2013 um 18:02 Uhr
Für OSX-Checkout Macgap, damit Sie beim App Store einreichen können. Knoten-Webkit wird für die zukünftige Verwendung einer potenziell veralteten API verweigert.
– Michael J. Calkins
28. Dezember 2013 um 5:45 Uhr
Hmm, jetzt gibt es eine Idee. Führen Sie die App als Server im Hintergrund aus und öffnen Sie dann einfach ein Browserfenster dafür (z Wie kann ich einen Browser ohne Fensterrahmen oder Registerkarten/Adressleiste starten?). Auf diese Weise erhalten Sie nicht ganz so viel Kontrolle über das Fenster (z. B. verwaltet der Browser die Menüelemente wie Datei, Bearbeiten, Anzeigen usw., und der Benutzer hat immer noch Zugriff auf Dinge wie Drucken, Zoomen und Seiteneinblendung des Browsers Suchfunktionen), aber es ist im Grunde kein zusätzliches Framework erforderlich.
Wie die Antwort von @ Tracker1 zeigt, ist Deskshell jetzt ein veraltetes Projekt und wurde seit Dezember 2013 nicht mehr entwickelt
– cmroanirgo
23. Mai 2015 um 22:33 Uhr
Brian Heese
Ich schlage vor, in Topcube zu suchen. Sein Ziel ist es, Node.js-Entwicklern eine Möglichkeit zu geben, eine Desktop-GUI für ihre Node.js-Server mit HTML5 + CSS 3 als GUI-Plattform zu haben.
Topcube scheint nicht mehr lange unterstützt zu werden
– Schamon
16. November 2011 um 16:53 Uhr
Ja, ich schlage vor, nach Titan zu suchen. Es ist nicht Node.js, sondern JS-basiert und plattformübergreifend für die Entwicklung von PCs und mobilen Anwendungen. appcelerator.com/products/…
– Brian Heese
13. Dezember 2011 um 12:00 Uhr
Das Titanglied ist verrottet. Ich nehme an, das ist es, was Sie meinen: docs.appcelerator.com/titanium/2.0/index.html Ihre undurchsichtige marketinglastige Website macht es sicher schwer zu erkennen, was ihr Produkt ist, oder sich darum zu kümmern.
– Grumdrig
25. April 2012 um 21:41 Uhr
Hinweis: Die Titanium-Desktop-Teile werden nicht mehr entwickelt/unterstützt.
– Sri Kadimisetty
6. Oktober 2012 um 15:32 Uhr
Die Entwicklung von Titanium Desktop wurde von einer neuen Gruppe von Entwicklern übernommen: tdesdk.org
– Motin
26. November 2012 um 10:52 Uhr
Entwickler
Derzeit gibt es eine Fülle von Möglichkeiten, dies zu erreichen.
Sie können auch jede andere als Anwendung gepackte Sprache verwenden (unter Verwendung von Tools für diese Sprachen/Stacks) und nach einer Knoteninstallation suchen, das „Server“-Skript mit Node.js starten und dann den Standardbrowser (oder eine Webansichtskomponente) starten , auf andere Weise), schließlich den Standort auf den Node.js-Dienst festlegen. Dies ist eine sehr leichte und effiziente Methode, die jedoch nicht so gut in das Betriebssystem integriert ist wie eine Lösung wie Electron.
Der Hauptkonkurrent von Electron ist hier NW.js. Soweit ich das beurteilen kann, ist das Hauptmerkmal von NW.js, das Electron (noch) nicht hat, Kompilierung/Verschleierung. Während Electron automatische Updates einfach macht.
11587300cookie-checkVerpacken einer Node.js-Webanwendung als normale Desktopanwendung [closed]yes