Ejecución de JavaScript fuera del navegador, multiplataforma

Estoy pensando en construir una herramienta básica. En el proceso de construir esta herramienta básica, esperaba aprender una nueva habilidad. Esperaba escribir la herramienta usando JavaScript puro. La herramienta básicamente tiene que ser una biblioteca reutilizable. La biblioteca reutilizable utilizará principalmente herramientas de línea de comandos de terceros. En ocasiones, es posible que haya algunas operaciones de nivel de sistema de archivos que deba incluir en la biblioteca, como copiar o eliminar archivos. También me gustaría añadir una interfaz de usuario a esta cosa.

Siento que mi idea se rompe porque quiero hacer cosas nativas en diferentes entornos. No quiero usar Java. Idealmente, me gustaría escribir mi código usando JavaScript. No sé sobre Node.js, sin embargo, por lo que estoy leyendo, parece que podría usar Node.js para mi biblioteca reutilizable. Sin embargo, no estoy seguro de qué podría usar para interactuar con esta biblioteca desde una perspectiva de la interfaz de usuario.

¿Tengo una buena idea de usar Node como mi tiempo de ejecución en este caso? Si es así, ¿hay alguna manera de que pueda crear una interfaz de usuario multiplataforma que pueda interactuar con esta biblioteca? ¡Gracias!

Un par de posibilidades vienen a la mente.

  • nodo-webkit :

node-webkit es un tiempo de ejecución de la aplicación basado en Chromium y node.js. Puede escribir aplicaciones nativas en HTML y Javascript con node-webkit. También le permite llamar a los módulos Node.js directamente desde DOM y permite una nueva forma de escribir aplicaciones nativas con todas las tecnologías web.

  • appjs :

AppJS es un SDK para desarrollar aplicaciones de escritorio utilizando Node.js combinado con Chromium.

  • Aplicaciones empaquetadas de Chrome (sin la parte de nodejs):

Las aplicaciones empaquetadas ofrecen una experiencia tan capaz como una aplicación nativa, pero tan segura como una página web. Al igual que las aplicaciones web, las aplicaciones empaquetadas están escritas en HTML5, JavaScript y CSS. Pero las aplicaciones empaquetadas se ven y se comportan como aplicaciones nativas, y tienen capacidades similares a las nativas que son mucho más poderosas que las disponibles para las aplicaciones web.

  • node-chrome : (integración ligera con chrome – tú controlas / escribes todo)

Este módulo demuestra qué tan bien pueden cooperar Node.js y Google Chrome (como dos binarios autónomos) sin mucha interfaz programática. Node-chrome es la cantidad mínima de pegamento necesaria para crear una experiencia de escritorio con Node.js. El módulo se ejecutará en plataformas en las que Chrome y Node.js se ejecutan.

  • Cree / Empaque su código nodejs usted mismo: haga que inicie el navegador predeterminado / preferido de los usuarios que apunta al servicio nodejs.

IMO: node-webkit es bastante interesante porque el empaquetado (en un escenario de aplicación básico) es tan simple como colocar un archivo zip de sus recursos de aplicaciones en un ejecutable. Distribuya el ejecutable adecuado para el entorno adecuado y listo.

Echa un vistazo a AppJS , es un SDK para desarrollar aplicaciones de escritorio utilizando Node.js. También tiene herramientas para exponer enlaces C ++ nativos a tu JavaScript. Para la parte frontal puede usar cualquier marco frontal que le guste, como bootstrap.