Est-il possible de compiler une application node.js ?
Je suis peut-être très tard mais vous pouvez utiliser le module "nexe" qui compile nodejs + votre script dans un exécutable: https://github.com/crcn/nexe
Node.js est basé sur le moteur Javascript V8, qui optimise lui-même les performances en compilant le code javascript en code natif.
Vous obtenez un fichier binaire entièrement fonctionnel sans sources.
Les modules natifs sont également pris en charge. (doit être placé dans le même dossier)
Le code JavaScript est transformé en code natif au moment de la compilation à l'aide du compilateur interne V8. Par conséquent, vos sources ne sont pas obligées d'exécuter le binaire et elles ne sont pas empaquetées.
Un code natif parfaitement optimisé ne peut être généré qu'au moment de l'exécution, en fonction de la machine du client. Sans cette information, EncloseJS ne peut générer que du code "non optimisé". Il est environ deux fois plus lent que NodeJS.
En outre, le code d'exécution node.js est placé dans l'exécutable (avec votre code) pour prendre en charge l'API de noeud pour votre application au moment de l'exécution.
Cas d'utilisation:
Il y avait une réponse ici: Distribution sécurisée d'applications NodeJS . Raynos a déclaré: La V8 vous permet de pré-compiler JavaScript.
Vous pouvez utiliser le compilateur Closure pour compiler votre javascript.
Vous pouvez également utiliser CoffeeScript pour compiler votre coffeescript en javascript.
Que voulez-vous réaliser avec la compilation?
La tâche consistant à compiler du code JavaScript non bloquant arbitraire, c’est très intimidant.
Il n’ya vraiment pas beaucoup de rapidité à gagner en compilant C ou ASM. Si vous voulez un gain de vitesse, calculez le déchargement dans un programme C via un sous-processus.
Maintenant, cela peut inclure plus que ce dont vous avez besoin (et peut même ne pas fonctionner pour les applications en ligne de commande dans un environnement non graphique, je ne sais pas), mais il y a nw.js . C'est Blink (c'est-à-dire Chrome/Webkit) + io.js (c.-à-d. Node.js).
Vous pouvez utiliser node-webkit-builder pour créer des fichiers binaires exécutables natifs pour Linux, OS X et Windows.
Si vous voulez une interface graphique, c'est un énorme avantage. Vous pouvez en créer une avec les technologies Web . Si vous ne le savez pas, spécifiez "node-main"
dans le package.json
(et probablement "window": {"show": false}
bien que cela fonctionne peut-être avec juste un node-main
et non une main
).
Je n'ai pas essayé de l'utiliser exactement de cette façon, je l'ai simplement jeté comme une possibilité. Je peux dire que ce n'est certainement pas une solution idéale pour les applications non graphiques Node.js.