2012-06-12 24 views
15

Quiero construir una interfaz para una serie de comandos de terminal que nuestros desarrolladores utilizan para administrar sus entornos de desarrollo. Me gustaría tratar de compilarlo en node.js.Paquete de una aplicación Node.js como una aplicación osx

Ahora, estoy pensando que puedo crearlo como una aplicación HTML5/CSS3/JS usando Express, etc ... y luego me gustaría empaquetarlo como una aplicación osx nativa. Es decir, una aplicación que puedo enviarles, hacen doble clic y se ejecutan, pero eso abre un navegador Chrome y navega al servidor localhost: puerto que golpea el script o simplemente inicia el servidor y le indica al usuario que vaya a la URL. . De cualquier manera está bien.

Estoy haciendo esto porque necesito acceso al sistema local para poder configurar una cantidad de cosas e interactuar con cualquier cantidad de ejecuciones (VM sin cabeza). Así que no puedo simplemente servir esto desde un servidor y hacer que visiten el sitio.

¿Alguna idea?

Gracias,

Luis

+0

significa esto realmente tiene que ser un paquete .app? De lo contrario, podría ser más simple crear un script de shell que realice todo el lanzamiento, y simplemente invocar ese MyApp.command, y empaquetarlo junto con una compilación local de nodo y su fuente dentro de un archivo zip o dmg o lo que sea. Si necesita ser un .app, las soluciones más simples implicarán simplemente el inicio directo del script JS, por lo que tendrá que escribir el código js para iniciar el navegador para el usuario (no tan difícil). Si necesita ser un .app y no puede modificar el JS, deberá crear un contenedor .app personalizado. Entonces, ¿qué quieres? – abarnert

+1

PD, no existe (todavía) un nodo.js equivalente a py2app, etc., que haría la solución intermedia realmente fácil. Por lo que entiendo, http://appjs.org/ es la opción más prometedora en este momento, pero la versión actual no funciona en Mac ... por lo que todavía tendrá que hacer un buen trabajo, incluso si va con la forma teóricamente "fácil". – abarnert

+0

PPS, también consulte https://groups.google.com/group/nodejs/browse_thread/thread/f90b3f1c747d20b3 (aunque se trata más de agrupar una GUI de WebKit en la aplicación, en lugar de iniciar el navegador predeterminado del usuario). – abarnert

Respuesta

2

Si compila node.js desde la fuente de cada archivo JavaScript desde los nodos lib carpeta se incluye en el binario. De la misma manera podría empacar tu código en el binario.

No me resulta familiar cómo se crean los paquetes de Mac OSX, pero al final no parece ser very hard. Solo empaca tu nodo binario personalizado en uno.

3

Echa un vistazo a AppJS: http://appjs.com/ - "Crear aplicaciones de escritorio para Linux, Windows y Mac utilizando HTML, CSS y Javascript"

suena como un buen partido :)

+3

por https://twitter.com/appjs/status/394911856910823424 - appjs fue reemplazado por https://github.com/rogerwang/node-webkit –

7

Opción 1: electron (también conocido como átomo-shell)

Este es el shell que utiliza el editor Atom de github. Es muy similar a node-webkit, aunque primero ejecutará el script y tendrá que crear una vista/ventana para el usuario. Hay algunas otras diferencias menores, pero vale la pena mirar.


Opción 2: NW.js anteriormente nodo-webkit

Lo esencial es que, básicamente, se extiende el motor de JS para escribir una aplicación basada en la web de soporte extendido modelo de objetos de nodo, y los módulos que ... a continuación, empaquete sus paquetes.json start.html módulos y archivos js en un archivo zip (con la extensión .nw) y ejecútelo con nw (.exe). Hay versiones de Windows, Mac y Linux disponibles.


Opción 3: Thrust (Node Adapter)

Ésta es una unión realmente pierden alrededor webkit/cromo con un canal IPC a un lanzamiento de aplicaciones. Puede usar el canal de mensajes o puede escribir su aplicación como una aplicación más tradicional del lado del servidor en el nodo y controlar el inicio de una ventana. Lo cual puede hacerte sentir bien.

Thrust tiene enlaces para varios idiomas. Puse esto delante de MacGapNode solo porque estoy favoreciendo primero las opciones multiplataforma.


Opción 4: MacGapNode (OSX solamente)

MacGap con la integración del nodo (parece ser cada vez rancio)


Aparte: Servicios ...

lo que pueda' Hablo de OSX en esto como .App, pero bien podría ser posible crear una instalación de servicio en segundo plano en NodeJS y un enlace a un sitio "local" en el escritorio. La mayoría de los navegadores tienen una opción para no mostrar todas las características (sé que Firefox en particular lo hace).

Sé que su pregunta es para OSX en particular, pero en Windows puede usar NSSM para ejecutar cualquier cosa como un servicio, y lo he usado para servicios basados ​​en NodeJS en Windows. Sin embargo, creo que algunas de las otras opciones anteriores son mejores según tus necesidades.


Eliminado:


Esta respuesta se copia para múltiples preguntas, estas referencias son en su mayoría para la actualización de conveniencia.

Cuestiones relacionadas