it-swarm.com.de

Gibt es eine Möglichkeit, node.js-Quelldateien zu kompilieren?

Gibt es eine Möglichkeit, eine node.js -Anwendung zu kompilieren?

52
Mark

Ich bin vielleicht sehr spät dran, aber Sie können das "nexe" -Modul verwenden, das nodejs + Ihr Skript in einer ausführbaren Datei kompiliert: https://github.com/crcn/nexe

47
Metal3d

Node.js läuft auf der V8-Javascript-Engine, die die Leistung selbst optimiert, indem sie JavaScript-Code in nativen Code kompiliert ... also kein Grund wirklich zu kompilieren, oder? 

https://developers.google.com/v8/design#mach_code

17
Tor P

EncloseJS .

Sie erhalten eine voll funktionsfähige Binärdatei ohne Quellen.

Auch native Module werden unterstützt. (muss im selben Ordner abgelegt werden)

JavaScript-Code wird bei der Kompilierung mithilfe des internen V8-Compilers in nativen Code umgewandelt. Daher sind Ihre Quellen nicht erforderlich, um die Binärdatei auszuführen, und sie werden nicht gepackt.

Perfekt optimierter nativer Code kann nur zur Laufzeit auf der Client-Maschine generiert werden. Ohne diese Informationen kann EncloseJS nur "nicht optimierten" Code generieren. Es läuft ungefähr 2x langsamer als NodeJS.

Außerdem wird der Laufzeitcode von node.js (zusammen mit Ihrem Code) in die ausführbare Datei eingefügt, um die Knoten-API für Ihre Anwendung zur Laufzeit zu unterstützen.

Anwendungsfälle:

  • Erstellen Sie eine kommerzielle Version Ihrer Anwendung ohne Quellen.
  • Erstellen Sie eine Demo-/Evaluierungs-/Testversion Ihrer App ohne Quellen.
  • Erstellen Sie eine Art selbstentpackendes Archiv oder Installationsprogramm.
  • Erstellen Sie eine Closed-Source-GUI-Anwendung mit Node-Thrust.
  • Knoten und npm müssen nicht installiert werden, um die kompilierte Anwendung bereitzustellen.
  • Sie müssen nicht hunderte von Dateien über npm install herunterladen, um Ihre Anwendung bereitzustellen. Stellen Sie es als einzelne unabhängige Datei bereit.
  • Fügen Sie Ihre Assets in die ausführbare Datei ein, um sie noch tragbarer zu machen. Testen Sie Ihre App mit der neuen Knotenversion, ohne sie zu installieren.
10
Robinicks

Hier gab es eine Antwort: Sichere Verteilung von NodeJS-Anwendungen . Raynos sagte: Mit V8 können Sie JavaScript vorkompilieren.

7
Andre Jonker

Sie können den Closure-Compiler verwenden, um Ihr Javascript zu kompilieren. 

Sie können auch CoffeeScript verwenden, um Ihr Kaffeeskript zu Javascript zu kompilieren. 

Was möchtest du mit dem Kompilieren erreichen?

Die Aufgabe, beliebiges, nicht blockierendes JavaScript zu kompilieren, um zu sagen, C klingt sehr entmutigend.

Durch das Kompilieren in C oder ASM kann man nicht so viel Geschwindigkeit gewinnen. Wenn Sie möchten, dass die Geschwindigkeitszunahme durch einen Unterprozess in ein C-Programm verlagert wird.

4
Raynos

Jetzt kann dies mehr umfassen, als Sie benötigen (und kann nicht einmal für Befehlszeilenanwendungen in einer nicht grafischen Umgebung funktionieren, weiß ich nicht), aber es gibt nw.js ..__ Chromium/Webkit) + io.js (dh Node.js).

Sie können node-webkit-builder verwenden, um native ausführbare Binärdateien für Linux, OS X und Windows zu erstellen.

Wenn Sie eine GUI wünschen, ist das ein großer Pluspunkt. Sie können eine mit Webtechnologien erstellen. Wenn dies nicht der Fall ist, geben Sie "node-main" in package.json (und wahrscheinlich "window": {"show": false} an, obwohl es möglicherweise nur einen node-main und keine main hat

Ich habe nicht versucht, es auf genau diese Weise zu verwenden, sondern es einfach als Möglichkeit herauszuwerfen. Ich kann sagen, es ist sicherlich keine ideale Lösung für nicht-grafische Node.js-Anwendungen.

0
1j01