encrypt - ¿Hay alguna manera de compilar los archivos fuente de node.js?
npm compile js (8)
Ahora esto puede incluir más de lo que necesita (y puede que ni siquiera funcione para aplicaciones de línea de comandos en un entorno no gráfico, no lo sé), pero hay nw.js Es Blink (es decir, Chromium / Webkit) + io.js (es decir, Node.js).
Puede usar node-webkit-builder para crear binarios ejecutables nativos para Linux, OS X y Windows.
Si quieres una GUI, es una gran ventaja. Puedes construir uno con tecnologías web. Si no lo hace, especifique "node-main"
en package.json
(y probablemente "window": {"show": false}
aunque tal vez funcione para tener solo un node-main
y no un main
)
No he intentado usarlo exactamente de esta manera, solo tirarlo por ahí como una posibilidad. Puedo decir que ciertamente no es una solución ideal para aplicaciones Node.js no gráficas.
Esta pregunta ya tiene una respuesta aquí:
¿Hay alguna manera de compilar una aplicación node.js ?
Hubo una respuesta aquí: Distribución segura de las aplicaciones NodeJS . Raynos dijo: V8 te permite precompilar JavaScript.
Node.js se ejecuta sobre el motor V8 Javascript, que a su vez optimiza el rendimiento al compilar el código javascript en el código nativo ... así que no hay razón para compilar, ¿verdad?
Puede utilizar el compilador de cierre para compilar su javascript.
También puede usar CoffeeScript para compilar su coffeescript a javascript.
¿Qué quieres lograr con la compilación?
La tarea de compilar JavaScript no bloqueante arbitrario para decir, C suena muy desalentador.
Realmente no hay mucha velocidad que ganar compilando a C o ASM. Si desea obtener velocidad, calcule la descarga en un programa C a través de un subproceso.
Recomiendo uglifyJS , funciona muy bien con node.js.
Tal vez sea muy tarde, pero puedes usar el módulo "nexe" que compila nodejs + tu script en un ejecutable: https://github.com/crcn/nexe
javascript no tiene un compilador como, por ejemplo, Java / C (por ejemplo, puede compararlo más con lenguajes como PHP). Si quieres escribir código compilado, debes leer la sección sobre addons y aprender C. Aunque esto es bastante complejo y no creo que necesites hacer esto, solo escribo javascript.
Obtienes un binario totalmente funcional sin fuentes.
Los módulos nativos también son compatibles. (debe colocarse en la misma carpeta)
El código JavaScript se transforma en código nativo en tiempo de compilación utilizando el compilador interno V8. Por lo tanto, no se requiere que sus fuentes ejecuten el binario, y no están empaquetados.
El código nativo perfectamente optimizado se puede generar solo en tiempo de ejecución según la máquina del cliente. Sin esa información, EncloseJS puede generar solo un código "no optimizado". Se ejecuta aproximadamente 2x más lento que NodeJS.
Además, el código de tiempo de ejecución node.js se coloca dentro del ejecutable (junto con su código) para admitir la API del nodo para su aplicación en tiempo de ejecución.
Casos de uso:
- Realiza una versión comercial de tu aplicación sin fuentes.
- Haga una versión demo / de evaluación / de prueba de su aplicación sin fuentes.
- Haga algún tipo de archivo o instalador autoextraíble.
- Cree una aplicación de GUI de código cerrado utilizando el empuje de nodos.
- No es necesario instalar el nodo y npm para implementar la aplicación compilada.
- No es necesario descargar cientos de archivos a través de npm install para implementar su aplicación. Implementarlo como un único archivo independiente.
- Coloque sus activos dentro del ejecutable para hacerlo aún más portátil. Pruebe su aplicación contra la nueva versión de nodo sin instalarla.