2012-03-15 10 views
7

Estoy tratando de encontrar una manera de utilizar una aplicación de nodo de línea de comandos que he creado en una computadora sin node.js instalado. En otras palabras, cómo empaquetar mi aplicación con node.js dentro, para evitar que los usuarios tengan node.js ya instalado.Cómo crear una aplicación de línea de comando autónoma con Node.js

El caso típico de uso es: Ejecuto la aplicación y la aplicación funciona utilizando el núcleo del nodo que se proporciona con la aplicación (o la aplicación comprueba si hay node.js instalado, y si no lo descarga e instala automáticamente)

¿Alguna idea?

+2

Esto parece ser parte de un duplicado piscina: http://stackoverflow.com/questions/6145561/is-there- a-way-to-compile-node-js-source-files, http://stackoverflow.com/questions/7557364/packing-node-js-scripts-node-exe-into-a-single-executable, http: //stackoverflow.com/questions/8173232/make-exe-from-node-js-app, http://stackoverflow.com/questions/8794140/is-it-possible-to-create-desktop-applications-with- node-js, http://stackoverflow.com/questions/9724817/how-to-create-a-stand-alone-command-line-application-with-node-js, http: // sta ckoverflow.com/questions/13388108/standalone-node-js-application – Mogsdad

+0

Hay una buena lista de herramientas aquí: http://stackoverflow.com/a/12486874/32679 – GrGr

Respuesta

0

Comprobando el Node.js License, parece que tiene licencia MIT, por lo que es perfectamente legal hacerlo.

Supongo que está apuntando a Windows o Mac, ya que en Linux podría simplemente lanzar un paquete que depende de Node.js de una versión en particular, y proporcionar una secuencia de comandos para agregar uno de los varios repositorios libres para .deb o .rpm versiones compiladas previamente de Node.js.

Deberá obtener la fuente de la versión que le interesa y compilarla para la plataforma que elija. Según recuerdo, el ejecutable incorporado se puede ejecutar directamente sin instalarse, pero supone que hay ciertas bibliotecas disponibles en el $PATH (OpenSSL es el que explícitamente mencionan en la licencia como preferido en lugar de estar compilado estáticamente en el binario).

Reading the Visual Studio build script, parece que necesitará que Python se instale para Windows para compilar el .exe. I sospechoso (pero no estoy seguro) que el ejecutable es esencialmente independiente para Windows, por lo que puede agrupar su código Javascript y escribir un archivo por lotes simple para ejecutarlo en esa plataforma. No tengo idea de cómo hacer un instalador de Windows .msi, pero el archivo vcbuild.bat también incluye la capacidad de generar uno, por lo que podría aprovechar su código para hacerlo.

0

Python, Perl y Tcl tienen utilidades que tomarán un script y crearán un ejecutable para una plataforma determinada. (No sé nada de Ruby, PHP, etc.): hasta el momento, no existe una utilidad como esta para nodejs, pero también me interesaría una existente.

Hay una opción de compilación en el nodo para que ejecute una secuencia de comandos especificada en el inicio, por lo que algunas de las cañerías están allí.

1

JXcore le permite hacer eso.

Una vez que haya instalado JXcore en las ventanas (o sistemas Unix), todo lo que tiene que hacer es ejecutar:

jx package app.js "myAppName" -native 

Esto producirá a.ejecutable exe (o ejecutable de UNIX si el comando se ejecutó en un sistema Unix) que puede distribuir y puede ejecutarse sin dependencias externas de ningún tipo (ni siquiera necesita JXcore ni Node.js en el sistema).

Aquí está la documentación sobre esa funcionalidad: http://jxcore.com/packaging-code-protection/#cat-74

(Duplicado de https://stackoverflow.com/a/27551233/810830)

Cuestiones relacionadas