Empaquete una aplicación Node.js como una aplicación OS X

Quiero crear una interfaz para una serie de comandos de terminal que nuestros desarrolladores usan para administrar sus entornos de desarrollo. Me gustaría intentar construirlo en Node.js.

Ahora, estoy pensando que puedo crearlo como una aplicación HTML5/CSS 3/JavaScript usando Express.js, etc... y luego me gustaría empaquetarlo como una aplicación OS X nativa. Es decir, una aplicación que simplemente puedo enviarles, hacen doble clic y la ejecutan, pero que inicia un navegador Chrome y navega al servidor localhost:port que accede al script o simplemente inicia el servidor e 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 serie de cosas e interactuar con cualquier número de máquinas virtuales en ejecución (sin cabeza). Así que no puedo simplemente servir esto desde un servidor y hacer que visiten el sitio.

¿Alguna idea?

preguntado el 12 de junio de 12 a las 20:06

¿Esto realmente tiene que ser un paquete .app? De lo contrario, podría ser más sencillo crear un script de shell que haga todo el trabajo de lanzamiento y simplemente llamar a MyApp.command y empaquetarlo junto con una compilación local del 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 iniciar directamente el script JS, por lo que tendrá que escribir el código js para iniciar el navegador para el usuario (no es tan difícil). Si debe ser un .app y no puede modificar el JS, deberá crear un contenedor .app personalizado. Entonces, ¿cuál quieres? -

PD, no hay (todavía) un node.js equivalente a py2app, etc., que haría que la solución intermedia fuera realmente fácil. Por lo que entiendo, appjs.org es la opción más prometedora en este momento, pero la versión actual no funciona en Mac... por lo que aún tendrá que trabajar mucho, incluso si opta por la forma teóricamente "fácil". -

PPS, ver también grupos.google.com/group/nodejs/browse_thread/thread/… (aunque se trata más de incluir una GUI de WebKit en la aplicación, en lugar de iniciar el navegador predeterminado del usuario). -

¿Alguien sabe cuál ha sido el progreso en esto? Parece que appjs ha quedado obsoleto. -

5 Respuestas

Opción 1 Electrón (anteriormente átomo-capa)

Este es el caparazón que tiene GitHub Atom y de Microsoft Código utilizan los editores. 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 mirarlas.


Opción 2 NW.js anteriormente node-webkit

La esencia es que básicamente amplía el motor de JavaScript para que pueda escribir una aplicación basada en web compatible Nodo.js' modelo de objeto extendido y módulos... luego empaqueta su package.json inicio.html módulos y archivos JavaScript en un archivo ZIP (con la extensión .nw) y ejecútelo con nw(.exe)... hay compilaciones de Windows, Mac y Linux disponibles.


Opción 3 neutralinojs Github

Neutralinojs es un marco de desarrollo de aplicaciones de escritorio ligero y portátil. Le permite desarrollar aplicaciones de escritorio multiplataforma ligeras utilizando JavaScript, HTML y CSS. Puede extender Neutralinojs con cualquier lenguaje de programación (a través de extensiones IPC) y usar Neutralinojs como parte de cualquier archivo fuente (a través de procesos secundarios IPC).


Opción 4 MacGapNode (SO X , solamente)

Integración de MacGap con Node.js (es parece estar obsoleto)


Opción 5 Tauri Github

Tauri es un conjunto de herramientas que ayuda a los desarrolladores a crear aplicaciones para las principales plataformas de escritorio, utilizando prácticamente cualquier marco de interfaz existente. El núcleo está construido con Rust y la CLI aprovecha Node.js, lo que convierte a Tauri en un enfoque genuinamente políglota para crear y mantener excelentes aplicaciones.


Aparte: Servicios ...

No puedo hablar por OS X sobre esto como .App, pero bien podría ser posible crear una instalación de servicio en segundo plano en Node.js y un enlace a un sitio "local" en el escritorio. La mayoría de los navegadores tienen la opción de no mostrar todas las funciones (sé que Firefox en particular sí lo hace).

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


Remoto:


Esta respuesta se copia para varias preguntas, y estas referencias son principalmente para actualizar la conveniencia.

Respondido el 13 de diciembre de 21 a las 19:12

@JasonJ.Nathan gracias, actualizado para eliminar el empuje y agregar a Carlo. - Tracker1

Carlo es interesante porque asume que Chrome está instalado. Realmente muy interesante :) - jason j nathan

Carlo ahora está oficialmente sin mantenimiento; podría tener sentido eliminarlo de la lista @Tracker1 (Fuente: github.com/GoogleChromeLabs/carlo/issues/…) - st_phan

Tauri debería aparecer en esta lista en breve. rx2347

@st_phan dejó obsoleto a carlo - Tracker1

Aquí hay un screencast + artículo sobre el tema de un instalador (.pkg):

Cómo crear un paquete OS X para aplicaciones NodeJS

En cuanto a la .app, aún no estoy seguro, pero estoy al tanto.

También:

Respondido el 28 de junio de 16 a las 00:06

¿Puedes resumir aquí? Esos enlaces pueden romperse en cualquier momento. - Pedro Mortensen

Comprar AppJS - "Cree aplicaciones de escritorio para Linux, Windows y Mac usando HTML, CSS y JavaScript"

Suena como un buen partido :)

Respondido 14 ago 21, 16:08

Según la referencia: "El proyecto AppJS no se ha desarrollado activamente durante algunos años. Consulte NW.js o Electron en su lugar". - Pedro Mortensen

Comprar NW.js - es un proyecto patrocinado por Intel para empaquetar aplicaciones Node.js para el escritorio.

Específicamente, vea Creación de aplicaciones de escritorio con node-webkit.

Respondido 14 ago 21, 16:08

Si compila Node.js desde la fuente, cada archivo JavaScript de Node.js' lib La carpeta se incluirá en el binario. De la misma manera podría empaquetar su código en el binario.

No estoy familiarizado con cómo se crean los paquetes de Mac OS X, pero al final no parece ser muy duro. Simplemente empaque su binario Node.js personalizado en uno.

Respondido 14 ago 21, 16:08

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.