Question

Le nœud peut être exécuté avec un paramètre de débogage comme celui-ci

$ node --debug src/file.js

Je peux aussi passer ce paramètre via le binaire coffee-script comme ceci

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

Ce qui fonctionne. Mais les choses deviennent plus difficiles lorsque j'implique superviseur . L'exécution de scripts café ne pose aucun problème:

$ supervisor -w src src/file.coffee

Mais je souhaite déboguer les scripts coffee que j'exécute avec superviseur . Comment puis-je envoyer des arguments tels que --debug via superviseur ? J'ai essayé de définir l'exécutable sur une chaîne avec des arguments comme celui-ci:

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

Ce qui a produit un message d'erreur qui se répète à l'infini

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

Ce qui est étrange, car exécuter coffee --nodejs --debug src/server.coffee dans le terminal fonctionne.

Alors, comment puis-je envoyer des arguments via superviseur ?


< Edit: Je souhaite développer ma question en mentionnant que j'ai maintenant essayé d'utiliser nodemon également. Il semble que nodemon soit considéré comme préférable à node-supervisor , j'accepterai donc toute réponse expliquant comment transmettre --debug au processus de nœud lors du lancement de scripts coffee via nodemon


< Edit: Voici le résultat de nodemon . Il est clair que les arguments ne sont pas passés dans le même ordre :-(

$ 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
Était-ce utile?

La solution

en fait, il s'est avéré être un bogue :)

Le chemin court:

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

Ou (où --nodejs et --debug sont inclus comme exécutables)

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

Ou (c'est plus joli que ci-dessus)

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

(tout sur nodemon 0.6.6)

Autres conseils

Vous pouvez utiliser -- avec superviseur.Je ne sais pas si cela fonctionnerait avec la syntaxe -x:

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

Après un rapide examen de superviseur, il semble qu'il transmette tous les arguments en tant qu'arguments au script lui-même, vous voudrez donc utiliser nodemon.

Nodemon choisit ses propres arguments, mais sinon, ils sont passés au nœud.Dans la version actuelle, les arguments après le fichier js / coffee sont conservés, et les arguments avant le fichier JS ont leur ordre inversé, alors essayez ceci.

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

Bien sûr, il semble que vous ayez remarqué cela aussi: P https://github.com/remy/nodemon/issues/54

Alors oui, le problème de commande est un bogue qui, espérons-le, sera corrigé.

Il s'avère que le problème est que les arguments sont simplement passés dans l'ordre inverse.Les oeuvres suivantes

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

J'ai également résolu le problème et envoyé une pull request à l'auteur sur github

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top