Verpacken einer Node.js-Webanwendung als normale Desktopanwendung [closed]

Lesezeit: 6 Minuten

Benutzer-Avatar
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?

Benutzer-Avatar
Verfolger1

Option 1: Elektron (früher Atomhülle)

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.


Option 2: NW.js früher node-webkit

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.json start.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.


Möglichkeit 3: Neutralinojs GitHub

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).


Möglichkeit 4: MacGapNode (OSX nur)

MacGap mit Node.js-Integration (it scheint altbacken werden)


Möglichkeit 5: Tauri GitHub

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.


ENTFERNT:


Diese Antwort wird für mehrere Fragen kopiert, und diese Referenzen dienen hauptsächlich der Aktualisierung.

  • Verpacken einer Node.js-Webanwendung als normale Desktopanwendung
  • Packen Sie eine Node.js-Anwendung als OS X-Anwendung

  • Für OSX und Linux github.com/crcn/nexe sieht auch nach einer Lösung aus.

    – Robokatze

    12. März 2013 um 2:53 Uhr

  • 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.

    – Ajedi32

    9. Februar 2015 um 22:06 Uhr

Benutzer-Avatar
Motin

Sie können dies mit erreichen AppJS.

  • Splash-Seite für das AppJS-Projekt zeigt jetzt auf Deskshell: github.com/sihorton/appjs-deskshell

    – yzorg

    8. Januar 2014 um 12:51 Uhr

  • 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

Benutzer-Avatar
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 auf GitHub.

  • 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

Benutzer-Avatar
Entwickler

Derzeit gibt es eine Fülle von Möglichkeiten, dies zu erreichen.

Der klare Gewinner im Bereich des Paketierens einer Node.js + HTML5-Anwendung ist derzeit Elektron (benutzt von Atom, Visual Studio-Code, Locker, Zwietrachtetc.).

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.

1158730cookie-checkVerpacken einer Node.js-Webanwendung als normale Desktopanwendung [closed]

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy