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.
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
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
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