"Connexion refusée" dans WebStorm MNP configuration de débogage
En gardant à l'esprit que je n'ai que le plus lâche de la compréhension de ce qu'est un débogueur est vraiment faire, j'ai besoin d'aide pour configurer le WebStorm mnp configuration de débogage pour un express.js
application.
Me voici donc ici-- je cliquez sur déboguer avec mes réglages car je pense qu'ils devraient être (ci-dessous):
/Users/me/.nvm/versions/node/v4.4.1/bin/node --debug=8090
/Users/me/.nvm/versions/node/v4.4.1/lib/node_modules/npm/bin/npm-cli.js run-script start
To debug "start" script, make sure $NODE_DEBUG_OPTION string is specified as the first argument for node command you'd like to debug.
For example:
{ "start": "node $NODE_DEBUG_OPTION server.js" }
Debugger listening on port 8090
...
It has begun. Port: 3000
Donc, à ce stade, l'application a commencé, et répond à mon POST
à localhost:3000
, mais ne rompt pas sur le point d'arrêt que j'ai défini.
À la recherche dans le Débogueur>Variables volet, je vois Connecting to localhost:57617
, une info-bulle apparaît disant "Connexion refusée" et le volet dit Frame is not available
.
Je ne comprends pas d'où ce numéro de port 57617 vient de. Cela varie, mais pas selon un modèle que j'ai encore découvert, sauf dans la mesure où il est toujours différent de celui que j'ai mis dans le --debug=X
ou --debug-brk=X
nœud option.
- 57617 est un port aléatoire Nœud débogueur est à l'écoute sur. Ce n'est pas vraiment important. Avez-vous d'ajouter $NODE_DEBUG_OPTION vers le nœud de commande dans votre forfait.json comme c'est écrit dans le message? Vous ne pouvez pas déboguer mnp scripts, sauf si cette variable est-il -, il est nécessaire de Nœud de départ engendré par npm en mode debug
- Qu'il a été. (J'ai été, je l'avoue, confus au sujet de qui comme je l'ai imaginée, il n'était pas un littéral de chaîne de valeur, mais certains env variable ou quelque chose du genre). Si vous répondez à la question ci-dessous, je vais accepter votre réponse.
Vous devez vous connecter pour publier un commentaire.
Le message d'erreur est en effet très clair. Vous avez besoin d'ajuster votre mnp script entrée dans le
package.json
(malheureusement). Trouvé une description claire de ce blog: http://pavelpolyakov.com/2016/05/01/webstorm-npm-tasks-debug/Votre
start
entrée doit ressembler à l'exemple suivant:Vous pouvez aussi aller avec deux entrées pour garder la première SÈCHE. Si elle n'est pas vraiment nécessaire puisque les deux fonctionner juste une fine ligne de commande. Donc, juste à des fins d'exhaustivité:
Je ne trouve pas cette méthode particulièrement propre, imo c'est ce que le mécanisme national de prévention débogueur doit faire pour vous, sans avoir à manipuler le code source. Mais il semble être le seul moyen (pour l'instant).
DEBUG=*,-babel,tinylr:*
dans le domaine de l'Environnement. et le Noeud en cours d'exécution Interprète = v4.4.1Je n'ai jamais eu besoin de cette dans les versions précédentes de Nœud ou de Webstorm. Pas sûr que ce qui a changé nécessitant cette option maintenant.
J'ai eu l'ajouter dans la
package.json
, même si, en l'ajoutant à la configuration d'exécution ne fonctionne pas. Et j'ai dû faire un script séparé parce qu'il a cassé lors de l'exécution d'un script sans de débogage.Voici mon colis.json (Note de Windows style de variables %VAR%, utiliser $VAR pour les systèmes de type Unix):
Puis quand je veux debug-je utiliser une configuration d'exécution qui appelle l'option debug--parce que dans Windows, au moins, le noeud est de prendre le var littéralement quand il n'est pas remplacé.
Si vous essayez d'entrer dans la variable dans Webstorm est (2016.3.3) exécuter boîte de dialogue de configuration:
Il en résulte que dans ces réel des commandes, qui sont incorrectes:
Comme un argument du script:
"C:\...\runnerw.exe" "C:\...\node.exe" "C:\...\npm-cli.js" run start %NODE_DEBUG_OPTION%
Comme un Nœud option:
"C:\...\runnerw.exe" "C:\...\node.exe" %NODE_DEBUG_OPTION% "C:\...\npm-cli.js" run start
Mais les options semblent avoir besoin d'être transmis à la NGP, pas de mécanisme national de prévention de script (l'ancien), et pas de nœud (dernier), et il n'y a pas moyen de le faire dans la boîte de dialogue, autant que je sache. Ainsi, d'ajouter à l'ensemble.json script de commande.