web-dev-qa-db-fra.com

Empaqueter une webapp node.js en tant qu'application de bureau normale

J'ai cherché un peu mais je ne trouve pas d'outil existant pour cela.

J'ai un serveur web node.js qui est conçu pour fonctionner sur votre propre ordinateur et qui fait des choses incroyables pour vous. Ce serait assez génial si je pouvais double-cliquer sur MySnazzyThing.app au lieu d'installer nodejs, et npm et d'exécuter node mysnazzyapp.js sur la ligne de commande.

Le .app l'exécutable spoulerait le serveur de noeud et ouvrirait une simple fenêtre native de webkit qui montrerait ce qui serait normalement sur localhost:3000 si je courais sur la ligne de commande.

Cette application native pourrait alors, par exemple, être distribuée via le Mac App Store. Et bam, une application de bureau node.js.

Existe-t-il un tel outil? Ou y a-t-il des raisons techniques pour lesquelles cela ne fonctionnerait pas comme je l'imagine?

86
Alex Wayne

Vous pouvez accomplir cela en utilisant AppJS: https://github.com/appjs/appjs

21
Motin

Option 1: électron (aka atom-Shell)

Il s'agit du shell utilisé par l'éditeur Atom de github. Il est très similaire à node-webkit, bien qu'il exécute le script en premier, et vous devez créer une vue/fenêtre pour l'utilisateur. Il y a quelques autres différences mineures, mais cela vaut la peine d'être examiné.


Option 2: NW.js anciennement node-webkit

L'essentiel est qu'il étend essentiellement le moteur JS pour que vous puissiez écrire une application Web prenant en charge le modèle d'objet étendu du nœud et les modules ... vous empaquetez ensuite vos modules et fichiers js package.json start.html dans un Zip (avec le .nw) et exécutez-le avec nw (.exe) .. il existe des versions Windows, mac et linux.


Option 3: Carlo chrom (ium) Shell à partir du nœud.

Cela vous permettra de lancer le Chrome en tant que Shell qui peut se connecter à une application serveur exécutée localement. Il nécessite un chrome local, mais est très proche de ce qui a été demandé.


Option 4: MacGapNode (OSX uniquement)

MacGap avec Node (semble devenir obsolète)


A part: Services ...

Je ne peux pas parler d'OSX à ce sujet en tant que .App, mais il pourrait bien être possible de créer une installation de service en arrière-plan dans NodeJS et un lien vers un site "local" sur le bureau. La plupart des navigateurs ont une option pour ne pas afficher toutes les fonctionnalités (je sais que Firefox en particulier le fait).

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


Supprimé:


Cette réponse est copiée pour plusieurs questions, ces références sont principalement destinées à faciliter la mise à jour.

90
Tracker1

Je suggère de regarder dans Topcube, son objectif est de "donner aux développeurs de nœuds un moyen d'avoir une interface graphique de bureau pour leurs serveurs de nœuds en utilisant HTML5 + CSS3 comme plate-forme graphique". Topcube sur github .

8
Brian Heese