Eu procurei um pouco, mas não consigo encontrar uma ferramenta existente para isso.
Eu tenho um servidor web node.js projetado para rodar em seu próprio computador que faz algumas coisas interessantes para você. Seria maravilhoso se eu pudesse clicar duas vezes em MySnazzyThing.app
vez de instalar o nodejs e o npm e rodar node mysnazzyapp.js
na linha de comando.
O .app
executável faria o spool do servidor de nó e abriria uma janela simples do webkit nativo que mostraria o que normalmente estaria ativado localhost:3000
se eu estivesse executando na linha de comando.
Esse aplicativo nativo poderia então, digamos, ser distribuído por meio da loja de aplicativos mac. E bam, um aplicativo de desktop node.js.
Essa ferramenta existe? Ou há algum motivo técnico para que isso não funcione como eu imagino?
fonte
Opção 1: elétron (também conhecido como camada de átomo)
Este é o shell que o editor Atom do github usa. É muito semelhante ao node-webkit, embora execute o script primeiro e você precise criar uma visualização / janela para o usuário. Existem algumas outras pequenas diferenças, mas vale a pena dar uma olhada.
Opção 2: NW.js anteriormente node-webkit
A essência é que basicamente estende o mecanismo JS para que você escreva um aplicativo baseado na web que suporte o modelo de objeto estendido do nó e módulos ... você então empacota seus módulos package.json start.html e arquivos js em um zip (com o extensão .nw) e execute-o com nw (.exe) .. há versões do Windows, Mac e Linux disponíveis.
Opção 3: casca de Carlo chrom (ium) do Node.
Isso permitirá que você inicie o Chrome instalado localmente como um shell que pode se conectar a um aplicativo de servidor em execução local. Ele exige um cromo local, mas está muito próximo do que foi solicitado.
Opção 4: MacGapNode (apenas OSX)
MacGap com integração de Node (parece estar ficando obsoleto)
À parte: Serviços ...
Não posso falar em nome do OSX como um .App, mas pode ser possível criar uma instalação de serviço em segundo plano no NodeJS e um link para um site "local" no desktop. A maioria dos navegadores tem a opção de não mostrar todos os recursos (eu sei que o firefox em particular mostra).
Eu sei que sua pergunta é para OSX em particular, mas no Windows você pode usar o NSSM para executar qualquer coisa como um serviço, e eu o usei para serviços baseados em NodeJS no Windows. Eu acho que algumas das outras opções acima são melhores dependendo de suas necessidades.
Removido:
nexe- obsoleto / sem manutençãoAppJS- substituído por DeskShellDeskShell- obsoleto, site offlinenode-webkit-renamed to NW.jsOprojetoXULRunnerestagnou e ficou excessivamente atrasado.Thrust ( adaptador de nó )- obsoleto / obsoletoEsta resposta é copiada para várias perguntas, essas referências são principalmente para atualização de conveniência.
fonte
Eu sugiro olhar para o Topcube, seu objetivo é "Dar aos desenvolvedores de nó uma maneira de ter uma GUI de desktop para seus servidores de nó usando HTML5 + CSS3 como plataforma de GUI." Topcube no github .
fonte
Atualmente, há uma infinidade de maneiras de fazer isso.
O vencedor claro no espaço de empacotar um aplicativo node + html5, é atualmente Electron (usado por Atom, VSCode, Slack, Discord, etc).
Você também pode usar qualquer outro pacote de idioma como um aplicativo (usando ferramentas para esses idiomas / pilhas) e verificar a instalação de um nó, iniciar o script "servidor" com o nó e, em seguida, iniciar o navegador padrão (ou algum componente de visualização da web, por alguns outros meios), finalmente definir a localização do serviço do nó. Este é um método muito leve e eficiente, porém não tão bem integrado com o SO como uma solução como o Electron.
O principal concorrente do Electron aqui é o NW.js. Pelo que eu posso dizer, o principal recurso do NW.js que o Electron (ainda) não possui é a compilação / ofuscação. Já o Electron facilita as atualizações automáticas.
https://electron.atom.io/ https://nwjs.io/
fonte