87 votes

Emballage d’un webapp node.js comme une application de bureau normale

J'ai cherché un peu, mais ne peut pas trouver un outil pour cela.

J'ai un node.js serveur web qui est conçu pour s'exécuter sur votre propre ordinateur qui n'certains snazzy choses pour vous. Il serait assez aswesome si je pouvais double-cliquez sur MySnazzyThing.app , au lieu de l'installation de nodejs et npm et en cours d'exécution node mysnazzyapp.js sur la ligne de commande.

L' .app exécutable serait spool le noeud serveur et ouvrez un simple natif de webkit fenêtre qui permettrait de voir ce qui serait normalement sur localhost:3000 si je ont été en cours d'exécution sur la ligne de commande.

Cette application native pourrait alors, dire, être distribué via le mac app store. Et bam, un node.js l'application desktop.

N'importe quel outil de ce type n'existe pas? Ou il y a des raisons techniques que cela ne fonctionne pas comme je l'imagine?

94voto

Tracker1 Points 6573

Option 1: node-webkit

L'essentiel est qu'il fait que prolonger la JS moteur de l'écriture d'une application web de soutien nœud étendues de modèle d'objet, et les modules... puis vous l'emballage de vos colis.json start.html modules et js fichiers dans un zip (avec l' .nw extension) et l'exécuter avec nw(.exe) .. il y a windows, mac et linux s'appuie disponibles.


Option 2: l'atome-shell

C'est le shell qui github de l'Atome de l'éditeur utilise. Il est très similaire au node-webkit, mais il va exécuter le script, et vous devez créer un affichage/fenêtre de l'utilisateur. Il y a quelques autres différences mineures, mais il vaut la peine de regarder.


Option 3: MacGapNode (OSX Uniquement)

MacGap avec le Noeud d'intégration


Option 4: XULRunner

Bien que n'étant pas NodeJS proprement dit, il est une autre option pour avoir un code HTML (XUL/HTML) en fonction de l'option qui est JS conduit. Cela n'inclut pas tout ce que les options ci-dessus comprennent, mais ne peut toujours être intéressant de regarder.


Aparté: Les Services...

Je ne peux pas parler pour OSX sur ce point .App, mais il pourrait bien être possible de créer un service d'arrière-plan de l'installer dans NodeJS et un lien vers un "local" site sur le bureau. La plupart des navigateurs ont une option pour ne pas afficher toutes les caractéristiques (je sais que firefox, en particulier, n').

Je sais que votre question est de OSX en particulier, mais dans windows, vous pouvez utiliser NSSM à exécuter quoi que ce soit en tant que service, et je l'ai utilisé pour NodeJS services basés sur windows. Je pense que certaines des autres options ci-dessus sont mieux en fonction de vos besoins.


Supprimé:

  • nexe vicié/plus maintenu
  • AppJS - remplacé par DeskShell
  • DeskShell vicié, site web hors connexion

22voto

Motin Points 1004

Vous pouvez le faire à l’aide de AppJS : https://github.com/appjs/appjs

8voto

Brian Heese Points 526

Je suggère de regarder dans Topcube, son but est de « Donner aux développeurs nœud un moyen d’avoir un bureau GUI à leurs serveurs de nœud en utilisant HTML5 + CSS3 platefrome GUI. » Topcube sur github.

0voto

Devin McKeon Points 17

Pour répondre à la quesion... Non, je ne pense pas que ce soit possible à l'heure actuelle à moins de créer votre propre solution. Mais l'intérêt est là et le développement. Je pense que Windows va probablement durer jusqu'node.js ne nécessite pas de cygwin.

Il semble y avoir beaucoup d'intérêt et de buzz sur cette approche pour l'avenir. L'un des principaux problèmes semble être node.js courir avec moins de dépendances (cygwin) dans windows.

Comme Brian Heese mentionné, un projet avec beaucoup de promesse est TopCube (webkit + node.js).

Peut-être à l'aide de Google Native Client pourrait donner une solution.

Je pense que la meilleure façon de mettre en œuvre ce, serait d'avoir un portable qui comprend une amélioration de la CEF, en fonction de l'application (pour plus de contrôle d'entrée, les liaisons, etc), ainsi que d'un package de serveur qui fonctionne séparément. Ils pourraient communiquer sur le réseau (à l'aide de bouclage).

Liées à des discussions intéressantes sur le sujet (l'intégration de webkit/chrome avec node.js pour le bureau, le développement de l'application): http://groups.google.com/group/nodejs/browse_thread/thread/f90b3f1c747d20b3 http://magpcss.org/ceforum/viewtopic.php?f=10&t=467

-4voto

Chris Kitching Points 24

Vous ne peut pas le faire avec un script bash ? Je ne sais pas assez pour fournir les détails, mais c’est probablement la voie à suivre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X