Estoy buscando en la programación Javascript sin un navegador. Quiero ejecutar scripts desde la línea de comandos de Linux o Mac OS X, al igual que ejecutamos cualquier otro lenguaje de scripts (ruby, php, perl, python ...)
$ javascript my_javascript_code.js
Miré en el mono araña (Mozilla) y v8 (Google), pero ambos parecen estar incrustados.
¿Alguien está usando Javascript como lenguaje de script para ejecutar desde la línea de comandos?
Si alguien tiene curiosidad por eso que estoy buscando en esto, he estado hurgando Node.js . El rendimiento de node.js me hace preguntarme si javascript puede ser un lenguaje de script viable para procesar grandes datos.
javascript
unix
command-line
scripting
v8
Daniel
fuente
fuente
Respuestas:
Encontré esta pregunta relacionada sobre el tema, pero si desea enlaces directos, aquí están:
Me sorprende que node.js no venga con un shell, pero supongo que en realidad es más como un servidor web orientado a eventos / devolución de llamada basado en epoll / selector, por lo que tal vez no necesita el conjunto completo de características JS, pero yo No estoy muy familiarizado con su funcionamiento interno.
Como parece interesado en node.js y está basado en V8, podría ser mejor seguir esas instrucciones para configurar un entorno V8 para que pueda tener una base coherente para su programación de JavaScript (espero que JSC y V8 sean principalmente lo mismo, pero no estoy seguro).
fuente
nodejs
en la terminal da acceso a REPL.Respuesta principal
Sí, para responder a su pregunta, es posible usar JavaScript como un lenguaje de script "regular" desde la línea de comandos, sin un navegador. Como otros aún no lo han mencionado, veo que vale la pena mencionarlo:
En los sistemas basados en Debian (y esto incluye Ubuntu, Linux Mint y aptosid / sidux, al menos), además de las opciones de instalación de Rhino y otras ya mencionadas, tiene otras opciones:
Instale el
libmozjs-24-bin
paquete, que le proporcionará el motor Spidermonkey de Mozilla en la línea de comandos como un simplejs24
, que puede usarse también como un intérprete interactivo. (El24
en el nombre significa que corresponde a la versión 24 de Firefox).Instale el
libv8-dev
paquete, que le proporcionará el motor V8 de Google. Tiene, como uno de sus ejemplos, el archivo/usr/share/doc/libv8-dev/examples/shell.cc.gz
que puede descomprimir y compilar de manera muy simple (por ejemplo,g++ -Os shell.cc -o shell -lv8
).Instale el paquete
nodejs
y estará disponible como el ejecutablenodejs
y como una alternativa (en el sentido de Debian) para proporcionar eljs
ejecutable. La compilación JIT se proporciona como cortesía de V8.Instale el paquete
libjavascriptcoregtk-3.0-bin
y use el intérprete JavaScriptCore de WebKit (jsc
) como intérprete habitual desde la línea de comandos. Y esto es sin necesidad de tener acceso a una Mac. En muchas plataformas (por ejemplo, x86 y x86_64), este intérprete vendrá con un compilador JIT.Entonces, con casi ninguna compilación, tendrá a su disposición tres de los motores JavaScript más pesados.
Apéndice
Una vez que haya instalado las cosas, simplemente puede crear archivos con la
#!/usr/bin/js
línea shebang y las cosas simplemente funcionarán:fuente
He instalado Node.js en un iMac y
en bash funcionará.
fuente
nodejs somefile.js
desde que instalé el paquete nodejsSé que preguntaste sobre Linux y Mac; Voy a proporcionar la respuesta para Windows, en caso de que otras personas interesadas en Windows encuentren su pregunta.
Windows incluye un motor Javascript que se puede usar desde la línea de comandos.
Todas las versiones de Windows, desde Windows 98, han incluido algo llamado " The Windows Script Host ". Es una forma estándar de Windows para admitir "motores" de script. Desde el primer lanzamiento, WSH es compatible con JScript, la versión de Javascript de Microsoft. Entre otras cosas, esto significa que, desde una línea de comandos de Windows, puede invocar el nombre de cualquier archivo * .js y se ejecutará en el motor JScript. (a través de wscript.exe o cscript.exe)
fuente
Como nadie lo mencionó: desde Java 1.6 El JDK de Java también viene incluido con una línea de comandos de JavaScript y REPL.
Está basado en Rhino: https://developer.mozilla.org/en/docs/Rhino
En Java 1.6 y 1.7, el comando se llama
jrunscript
(jrunscript.exe
en Windows) y se puede encontrar en la carpeta bin del JDK.A partir de Java 1.8, se incluye una nueva implementación de JavaScript (Nashorn: https://blogs.oracle.com/nashorn/ )
Entonces, en Java 1.8, el comando se llama
jjs
(jjs.exe
en Windows)fuente
FWIW, node.js viene con un shell, intente escribir:
una vez que hayas instalado node.js para verlo en acción. Es bastante estándar instalar rlwrap para que funcione bien.
fuente
Es posible que desee ver Rhino .
Rhino Shell proporciona una forma de ejecutar scripts JavaScript en modo por lotes:
fuente
Sé que esto es viejo, pero también deberías probar Zombie.js . ¡Un navegador sin cabeza que es increíblemente rápido e ideal para probar!
fuente
Yo uso Ubuntu 12.10 y js desde la línea de comandos
Está disponible con mi instalación de java:
Algunos ejemplos:
El cielo es el límite, luego sigue recto.
fuente
PhantomJS te permite hacer esto también
http://phantomjs.org/
fuente
Encontré este motor JS realmente ingenioso de código abierto compatible con ECMAScript completamente escrito en C llamado duktape
¡Buena suerte!
fuente
Bueno, hay JavaScript como OSA , una extensión que proporciona JavaScript como alternativa a appleScript. Lo he estado usando hace unos 10 años, no sé si todavía funciona con las versiones actuales del sistema operativo
fuente
JSDB , disponible para Linux, Windows y Mac debería ajustarse bastante bien. Utiliza el motor Javascript de Spidermonkey de Mozilla y parece ser menos complicado de instalar en comparación con node.js (al menos la última vez que probé node.js hace un par de años).
Encontré JSDB de esta interesante lista de shells de Javascript: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Shells
fuente