J'ai cherché un peu mais je ne trouve pas d'outil existant pour cela.
J'ai un serveur Web node.js conçu pour fonctionner sur votre propre ordinateur et qui fait des choses élégantes pour vous. Ce serait assez génial si je pouvais double-cliquer MySnazzyThing.app
au lieu d'installer nodejs et npm et de fonctionner node mysnazzyapp.js
sur la ligne de commande.
L' .app
exécutable mettrait en file d'attente le serveur de nœuds et ouvrirait une simple fenêtre Webkit native qui montrerait ce qui serait normalement allumé localhost:3000
si j'exécutais en 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.
Un tel outil existe-t-il? Ou y a-t-il des raisons techniques pour lesquelles cela ne fonctionnerait pas comme je l'imagine?
la source
Option 1: électron (aka atom-shell)
C'est le shell qu'utilise l'éditeur Atom de github. C'est très similaire à node-webkit, bien qu'il exécute d'abord le script et que vous devez créer une vue / fenêtre pour l'utilisateur. Il existe d'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 fondamentalement le moteur JS pour que vous puissiez écrire une application Web prenant en charge le modèle d'objet étendu et les modules du nœud ... vous conditionnez ensuite vos modules package.json start.html et vos fichiers js dans un zip (avec le .nw) et exécutez-le avec nw (.exe) .. il existe des versions Windows, Mac et Linux disponibles.
Option 3: Coque Carlo chrome (ium) de Node.
Cela vous permettra de lancer Chrome installé localement en tant que shell pouvant 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 intégration de nœud (semble devenir obsolète)
Mis à part: Services ...
Je ne peux pas parler pour 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 la possibilité de ne pas afficher toutes les fonctionnalités (je sais que Firefox en particulier le fait).
Je sais que votre question concerne particulièrement OSX, 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é:
nexe- périmé / non entretenuAppJS- remplacé par DeskShellDeskShell- obsolète, site Web hors lignenode-webkit - renommé en NW.jsLeprojetXULRunnera calé, et très en retard.Thrust ( Node Adapter )- obsolète / obsolèteCette réponse est copiée pour plusieurs questions, ces références sont principalement destinées à faciliter la mise à jour.
la source
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 .
la source
Actuellement, il existe une multitude de moyens pour y parvenir.
Le gagnant incontestable dans le domaine de l'empaquetage d'un nœud + application html5 est actuellement Electron (utilisé par Atom, VSCode, Slack, Discord, etc.).
Vous pouvez également utiliser n'importe quelle autre langue fournie en tant qu'application (en utilisant des outils pour ces langues / piles), et vérifier l'installation d'un nœud, lancer le script "serveur" avec nœud, puis lancer le navigateur par défaut (ou un composant d'affichage Web, en d'autres moyens), définissez enfin l'emplacement du service de nœud. Il s'agit d'une méthode très légère et efficace, mais pas aussi bien intégrée au système d'exploitation qu'une solution comme Electron.
Le principal concurrent d'Electron ici est NW.js. Pour autant que je sache, la principale caractéristique de NW.js qu'Electron n'a pas (encore) est la compilation / obfuscation. Alors qu'Electron facilite les mises à jour automatiques.
https://electron.atom.io/ https://nwjs.io/
la source