web-dev-qa-db-fra.com

Est-il possible de compiler les fichiers source de node.js?

Est-il possible de compiler une application node.js ?

52
Mark

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

47
Metal3d

Node.js est basé sur le moteur Javascript V8, qui optimise lui-même les performances en compilant le code javascript en code natif. 

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

17
Tor P

EncloseJS .

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:

  • Créez une version commerciale de votre application sans sources.
  • Créez une version de démonstration/d'évaluation/d'essai de votre application sans sources.
  • Créez une sorte d’archive ou d’installateur auto-extractible.
  • Créez une application d'interface graphique source fermée en utilisant la poussée de nœud.
  • Pas besoin d'installer node et npm pour déployer l'application compilée.
  • Nul besoin de télécharger des centaines de fichiers via npm install pour déployer votre application. Déployez-le en tant que fichier indépendant unique.
  • Placez vos ressources dans l'exécutable pour le rendre encore plus portable . Testez votre application par rapport à la nouvelle version du nœud sans l'installer.
10
Robinicks

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.

7
Andre Jonker

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.

4
Raynos

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.

0
1j01