Ya no busques más por todo internet porque estás al sitio perfecto, poseemos la respuesta que buscas y sin problema.
Solución:
Respuesta principal
Sí, para responder a su pregunta, es posible usar JavaScript como un lenguaje de secuencias de comandos “normal” desde la línea de comandos, sin un navegador. Como otros aún no lo han mencionado, veo que vale la pena mencionarlo:
En sistemas basados en Debian (y esto incluye Ubuntu, Linux Mint y aptosid/sidux, al menos), además de las opciones de instalar Rhino y otros ya mencionados, tienes otras opciones:
-
Instala el
libmozjs-24-bin
paquete, que le proporcionará el motor Spidermonkey de Mozilla en la línea de comandos como un simplejs24
, que se puede utilizar también como intérprete interactivo. (Él24
en el nombre significa que corresponde a la versión 24 de Firefox). -
Instala 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 forma muy sencilla (p. ej.,g++ -Os shell.cc -o shell -lv8
). -
Instalar el paquete
nodejs
y estará disponible tanto 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. -
Instalar el paquete
libjavascriptcoregtk-3.0-bin
y use el intérprete JavaScriptCore de WebKit (jsc
) como un intérprete normal desde la línea de comandos. Y esto sin necesidad de tener acceso a una Mac. En muchas plataformas (p. ej., x86 y x86_64), este intérprete vendrá con un compilador JIT.
Por lo tanto, casi sin compilación, tendrá a su disposición tres de los motores de JavaScript de gran peso.
Apéndice
Una vez que haya instalado las cosas, simplemente puede crear archivos con el #!/usr/bin/js
shebang line y las cosas simplemente funcionarán:
$ cat foo.js
#!/usr/bin/js
console.log("Hello, world!");
$ ls -lAF /usr/bin/js /etc/alternatives/js /usr/bin/nodejs
lrwxrwxrwx 1 root root 15 Jul 16 04:26 /etc/alternatives/js -> /usr/bin/nodejs*
lrwxrwxrwx 1 root root 20 Jul 16 04:26 /usr/bin/js -> /etc/alternatives/js*
-rwxr-xr-x 1 root root 1422004 Apr 28 20:31 /usr/bin/nodejs*
$ chmod a+x foo.js
$ ./foo.js
Hello, world!
$ js ./foo.js
Hello, world!
$
Encontré esta pregunta relacionada con el tema, pero si quieres enlaces directos, aquí están:
- Puede instalar Rhino como han señalado otros. Esta publicación muestra una manera fácil de ponerlo en marcha y cómo crear un alias para un comando para invocarlo fácilmente.
- Si está en una Mac, puede usar JavaScriptCore, que invoca el motor de JavaScript de WebKit. Aquí hay una publicación sobre eso
- También puede usar el intérprete V8 de Chome/Google. Aquí hay instrucciones
- El JavaScript como OSA es interesante porque te permite (AFAIK) interactuar con aplicaciones OS X programables como si estuvieras en AppleScript (sin la terrible sintaxis)
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, así que tal vez no necesite el conjunto completo de funciones de JS, pero No estoy muy familiarizado con su funcionamiento interno.
Dado que parece interesado en node.js y dado que está basado en V8, podría ser mejor seguir esas instrucciones para configurar un entorno V8 para que pueda tener una base consistente para su programación de JavaScript (espero que JSC y V8 sean en su mayoría lo mismo, pero no estoy seguro).
He instalado Node.js en un iMac y
node somefile.js
en bash funcionará.
Si haces scroll puedes encontrar las referencias de otros creadores, tú igualmente tienes el poder dejar el tuyo si te gusta.