Peut-On configurer Visual Studio Code pour le lancer avec nodemon?
j'ai installé nodemon
mondial paquet dans mon système.
Il fonctionne lorsque j'ai exécuté nodemon
dans cmd.
mais quand j'utilise vscode avec ceci launch.json
file, vscode lance cette exception:
request launch: runtime executable XXXXXXXXXnodemon does not exist
le lancement.json est:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "node",
"request": "launch",
"program": "app.js",
"stopOnEntry": false,
"args": [],
"cwd": ".",
"runtimeExecutable": nodemon,
"runtimeArgs": [
"--nolazy"
],
"env": {
"NODE_ENV": "development"
},
"externalConsole": false,
"preLaunchTask": "",
"sourceMaps": false,
"outDir": null
},
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858
}
]
}
quand j'efface le nodemin dans runtimeExecutable
il fonctionne parfaitement avec le noeud
7 réponses
tout d'abord, installez nodemon comme une dépendance dev:
npm install --save-dev nodemon
ensuite, configurez votre configuration de lancement comme ceci:
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch with nodemon",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/nodemon/bin/nodemon.js",
"args": ["${workspaceRoot}/index.js"],
"runtimeArgs": ["--nolazy"]
}
]
}
les pièces Les plus importantes sont l' program
propriété pointant vers le script nodemon et le args
propriété qui contient votre script de point d'entrée normal.
dans Visual studio code créer une configuration de lancement:
{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858,
"restart": true
}
exécuter nodemon à partir de la ligne de commande: nodemon --debug server.js
je n'ai pas pu obtenir la réponse de @AdrianT en travaillant avec le débogueur attaché. Il semble qu'il y a une nouvelle intégré de prise en charge pour ce faire:
- ouvrez la liste déroulante de Configuration de lancement et sélectionnez " Ajouter une configuration..."
- Sélectionner " Noeud.js: Nodemon Setup"
Il va ajouter quelque chose comme ceci à votre lancement.json:
{
"type": "node",
"request": "launch",
"name": "nodemon",
"runtimeExecutable": "nodemon",
"program": "${workspaceRoot}/app.js",
"restart": true,
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
}
assurez-vous que votre paramètre" programme " est le bon script de point d'entrée.
Vous devez installer nodemon à l'échelle mondiale pour obtenir que cela fonctionne (npm install-g nodemon) (selon l' la documentation)
votre application fonctionne maintenant et vous pouvez définir les points de rupture qui seront touchés et la console se connecte à la fenêtre du terminal intégré.
notez que mettre fin à la session de débogage ne fait que mettre fin au programme de débogage, pas à nodemon lui-même. Pour terminer nodemon, press Control-C dans le terminal intégré.
non, actuellement il ne peut pas. Mais j'ai réussi à obtenir ce quelque peu de travail en utilisant nodemon. Je commence par Grunt . Mais une ligne de commande équivalente devrait faire la même chose.
EDIT: après une soirée d'essais je peux dire que l'approche ci-dessous est encore un peu flasque :s, attachant échoue de façon intermittente et parfois les points de rupture sont ignorés.
EDIT2: vous pouvez également spécifier un port de débogage non par défaut dans Gruntfile en utilisant ['--debug-brk=5860']
nodeArgs
. J'ai été également conseillé d'utiliser --debug-brk
au lieu de --debug
. Peut-être cela supprimera le flakeyness actuel. Je reviendrai et mentionnerai ici si cela aide (j'ai actuellement changé de projet).
Dans le cas où cela pourrait aider quelqu'un cela fonctionne avec ci-dessous les paramètres Actuels VS version du Code (par exemple, v0.10.6) sur Windows 10. Mais ça marchera probablement sur Mac aussi (je vérifierai peut-être plus tard). Mais notez que je dois parfois déclencher une reconstruction en changeant+sauvegarder un fichier avant que le débogueur ne le prenne. jusqu'.
/.vscode/launch.json
{
"configurations": [{
"name": "Launch",
"outDir": null
},{
"name": "Attach",
"type": "node",
"request": "attach",
"port": 5858
}]
}
/Gruntfile.js
nodemon : {
dev : {
script : 'launcher.js'
},
options : {
ignore : ['node_modules/**', 'Gruntfile.js'],
nodeArgs: ['--debug'],
env : { PORT : '4123'
}
}
}
je suppose que le port de débogage 5858 est le port par défaut puisqu'il n'est pas spécifié ici (notez qu'il est dans launch.json
ci-dessus.)
attacher est certainement une option facile. Pour être sûr que votre code casse, assurez-vous de lancer nodemon avec --inspect-brk
(le nœud 8+), par exemple:
nodemon --inspect-brk src/app.js
après avoir lancé nodemon va ouvrir le port ouvert pour les connexions de débogage:
Debugger listening on ws://127.0.0.1:9229/someUUID
vous pouvez prendre ce port afin de construire votre configuration de lancement qui est assez simple:
{
"type": "node",
"request": "attach",
"name": "Attach",
"port": 9229,
"restart": true
},
Oui, vous pouvez! À partir d'une mise à jour récente, vous pouvez attacher le débogueur à un processus Nodemon en cours d'exécution. Cette page a plus d'information. Cherchez nodemon sur la page pour voir les instructions.
j'utilise le plugin noeud Exec. Il vous permet d'exécuter et d'arrêter une application de noeud dans vcs en appuyant sur F8 et F9 (s'applique sur le fichier ouvert dans l'éditeur). Cela pourrait être une solution de contournement (temporaire).