2011-01-25 18 views
28

Me gusta el javascript, así que me entusiasmé cuando escuché acerca de Node.js, un tiempo de ejecución de Javascript basado en V8. Preferiría hacer mi script de shell en adelante en Javascript. Mi problema es este: ¿cómo puedo ejecutar mis scripts sin llamar al node ~/Scripts/myscript.js? Después de I chmod +x mi secuencia de comandos, intenta ejecutarse como un script bash en lugar de un javascript Node.js.¿Es posible ejecutar scripts Node.js sin invocar `node`?

+0

imho esto pertenece a stackoverflow.com – akira

+1

@akira Lo publiqué aquí porque concierne el uso de la herramienta en lugar de temas de programación. Mis preguntas son sobre cómo un sistema operativo maneja los archivos de script, no sobre cómo programar dichos scripts. –

+0

En realidad, es bastante fácil hacerlo en Geany: http://stackoverflow.com/questions/12464679/run-a-node-js-server-from-geany/12465826#12465826 –

Respuesta

34

¿Qué hace que su caparazón actual comience el bash es que su shell actual (¿no?) No tiene ni idea de qué hacer con un archivo.js. Es por eso que los dioses de UNIX inventaron el shebang para:

La secuencia de caracteres que consiste en el signo de número caracteres y signo de admiración (! #), Cuando se produce ya que los dos primeros caracteres de la primera línea de un archivo de texto. En este caso, el cargador de programas en sistemas operativos tipo Unix analiza el resto de la primera línea como una directiva de intérprete e invoca el programa especificado después de la secuencia de caracteres con cualquier opción de línea de comando especificada como parámetro.

Así, en su caso, me gustaría tratar de poner

#!/usr/bin/env node 

en la parte superior de la secuencia de comandos. Puede ver que el beeing se aplicó, por ejemplo, en el shell 'inode' (interactive node.js), que podría ser otra opción para activar sus scripts.

https://github.com/bancek/node-interactive-shell/blob/master/inode.js

+24

En realidad debería usar '#!/Usr/bin/env node'. PD: Tener Node instalado como root es ... como mala idea, siempre instálelo en '~/.local', también debería instalar npm allí. De lo contrario, uno tiene que sudo npm para instalar cosas, y los paquetes de nodos pueden tener scripts posteriores a la instalación;) –

+0

@ Ivo Wetzel ¿cómo voy a mover mi instalación de Node.js a ~/.local? ¿Debería desinstalar y reinstalar? Construir desde la fuente usando 'make' –

+0

Desinstalar la actual y luego referirme a esta idea: https://gist.github.com/579814#file_xgd_freedesktop.org_style.sh –

0

Siempre se puede simplemente crear un script de shell que se ejecuta el nodo para usted.

O bien, si desea crear un script que se pueda ejecutar en un entorno que no tenga node.js instalado, puede usar installer-maker.

Cuestiones relacionadas