2012-01-14 6 views
7

nodo se puede ejecutar con un parámetro de depuración como esto¿Cómo puedo pasar argumentos al ejecutable en nodemon (o node-supervisor)?

$ node --debug src/file.js 

también puedo pasar ese parámetro a través del binario coffeescript como esto

$ coffee --nodejs --debug src/file.coffee 

que trabaja. Pero las cosas se ponen más difíciles cuando involucro supervisor. Ejecución de scripts de café no es ningún problema:

$ supervisor -w src src/file.coffee 

Pero quiero depurar los scripts de café que estoy corriendo con supervisor. ¿Cómo puedo enviar argumentos como --debug hasta supervisor? Intenté fijar el ejecutable a una cadena con los argumentos como este:

$ supervisor -w src -x "coffee --nodejs --debug" src/server.coffee 

que produjo un mensaje de error infinitamente repetir diciendo

 
DEBUG: Starting child process with 'coffee --nodejs --debug src/server.coffee' 
DEBUG: execvp(): No such file or directory 

lo cual es extraño, porque la ejecución de coffee --nodejs --debug src/server.coffee en la terminal trabajos.

Entonces, ¿cómo puedo enviar argumentos a través de supervisor?


Editar: quiero ampliar mi pregunta con mencionar que ahora he intentado usar nodemon también. Parece nodemon se considera preferible node-supervisor, así que voy a aceptar cualquier respuesta que explica cómo pasar --debug al proceso de nodo en el lanzamiento de los scripts de café a través nodemon


Editar: Aquí está la salida de nodemon . Es evidente que los argumentos no se transmiten en el mismo orden :-(

 
$ nodemon -w src -x coffee --nodejs --debug src/server.coffee 
15 Jan 03:41:56 - [nodemon] v0.6.5 
15 Jan 03:41:56 - [nodemon] watching: /foo/bar/server/src 
15 Jan 03:41:56 - [nodemon] running --debug 
15 Jan 03:41:56 - [nodemon] starting `coffee --debug --nodejs src/server.coffee` 

node.js:201 
     throw e; // process.nextTick error, or 'error' event on first tick 
      ^

Error: unrecognized option: --debug 
+0

nuevo al nodo aquí. ¿Algún detalle sobre por qué nodemon es preferible al supervisor? Una cosa que he notado es que después de un choque, no hay ningún intento frenético de reiniciar. –

Respuesta

4

realidad, resultó ser un error :)

La forma corta:

nodemon --debug -w src src/server.coffee 

O (donde --nodejs y --debug se incluyen como el ejecutivo)

nodemon -x "coffee --nodejs --debug" -w src src/server.coffee 

O (se ve mejor que anteriormente)

nodemon -x coffee --nodejs --debug -w src src/server.coffee 

(todos en nodemon 0.6.6)

+1

Solo para el registro, esto no funcionó en el momento en que hice esta pregunta. Fue arreglado más tarde. Sin embargo, es correcto ahora – Hubro

0

partir de una revisión rápida del supervisor, que parezca que pasa todos los argumentos como argumentos a la escritura sí mismo, así que es conveniente utilizar nodemon.

Nodemon elige sus propios argumentos, pero de lo contrario se pasan al nodo. En la versión actual, los argumentos después del archivo js/coffee se conservan, y los argumentos antes del archivo JS tienen su orden invertido, intente esto.

nodemon -w src -x coffee --debug --nodejs src/server.coffee 

Por supuesto, parece que usted notic eso también: P https://github.com/remy/nodemon/issues/54

Así que sí, el problema del pedido es un error que con suerte se solucionará.

+0

No se pasan en el mismo orden, consulte mi última actualización de pregunta. Gracias – Hubro

+0

Actualizado. ¿Vas a hacer un parche? Debería ser bastante fácil, así que si no me lo dices, lo haré. – loganfsmyth

+0

Lo he hecho, no hay problema – Hubro

0

Resulta que el problema fue que los argumentos simplemente se pasan en el orden inverso.Las siguientes obras

$ nodemon --debug --nodejs -w src -x coffee src/server.coffee 

También han solucionado el problema y envió un pull request a the author en github

7

Usted puede utilizar -- con el supervisor. No estoy seguro si esto funcionaría con la sintaxis -x sin embargo:

supervisor -w src -- coffee.js --nodejs --debug src/server.coffee

Cuestiones relacionadas