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

27
demandé sur Mickel Sierra 2015-12-24 12:10:59

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.

27
répondu AdrianT 2017-07-18 20:56:31

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

14
répondu Yevgeni 2016-03-16 16:17:00

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:

  1. ouvrez la liste déroulante de Configuration de lancement et sélectionnez " Ajouter une configuration..."
  2. 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é.

11
répondu Mathew 2017-09-27 10:39:51

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.)

1
répondu Bart 2016-01-19 15:48:54

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
},
1
répondu Fred 2018-01-07 13:57:14

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.

0
répondu Aron 2016-06-07 14:07:24

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).

0
répondu KiSa87 2017-11-09 13:27:10