Comment puis-je exécuter nodemon depuis WebStorm?

84

Je voudrais utiliser nodemon depuis l'IDE WebStorm (version 7). Nodemon regarde un ou plusieurs fichiers dans mon dossier source et redémarre le processus de nœud (un serveur Express dans ce cas), lorsqu'un des fichiers source change.

Comment configurer WebStorm pour utiliser nodemon dans une configuration d' exécution , afin que le processus de nœud soit automatiquement redémarré?

Sans nodemon , j'utilise la configuration suivante dans WebStorm, mais je dois redémarrer le processus de nœud chaque fois que je change quelque chose dans le fichier source:

  • Interpréteur de nœud: /usr/local/bin/node
  • Directeur de travail: /Users/foo/test
  • Fichier JavaScript: server.js

Cela entraîne une configuration d'exécution qui s'exécute node server.jsdans le répertoire spécifié.

À partir de la ligne de commande, je peux utiliser la commande suivante pour utiliser nodemon pour surveiller les modifications de fichiers: nodemon server.jsdans le répertoire du projet.

Comment dois-je modifier la configuration de WebStorm pour qu'elle utilise également nodemon ?

nwinkler
la source
Cette question semble aller dans le même sens: stackoverflow.com/questions/11175041/…
nwinkler
Voir ma réponse stackoverflow.com/a/52463378/7350853 utilise la version la plus récente du Webstorm à ce jour.
iwaduarte

Réponses:

143

Il semble que la solution de contournement avec --execn'est plus nécessaire, du moins lors de l'utilisation de la dernière version de nodemon et Webstorm 7 ou 8.

Tout ce que vous avez à faire est de spécifier votre chemin vers nodemon en obtenant son chemin en exécutant which nodemondans votre console (par exemple /usr/local/bin/nodemon) sous "Paramètres du nœud":

Webstorm avec nodemon

@Bela Clark, merci d'avoir confirmé.

Bernhardw
la source
Je viens d'essayer - cela fonctionne parfaitement bien maintenant. Merci d'avoir fourni une réponse mise à jour!
nwinkler
8
@bernhardw, webstorm ne s'arrête pas sur les points d'arrêt lors du démarrage du débogueur avec ces configurations. Une idée pourquoi?
Nik Sumeiko
4
Géré pour faire fonctionner nodemon et les points d'arrêt en suivant ces instructions: vcfvct.wordpress.com/2015/02/13 / ... Notez que j'ai utilisé --debug-brk au lieu de --debug
n00b
1
Pour faire fonctionner le débogage, j'ai dû utiliser le plug-in Live Edit pour IntelliJ au lieu de nodemon.
moteur
1
Bonne réponse ! Merci
Julien
33

C'est la solution Windows

Vous pouvez simplement utiliser nodemon.cmd au lieu de node directement comme:

Node interpreter : C:\MyPath\To\nodemon.cmd
Node parameters : /*Empty for me*/
Node WorkingDirectoy : C:\Users\MyUserName\Desktop\DirectoryContainingMyIndex.js
JavaScriptFile : app\index.js /*or just index.js depending on your config*/

puis :

entrez la description de l'image ici

J'espère que cela vous aidera.

RPDeshaies
la source
Je pensais que c'était la réponse la plus simple.
Paul Wade
6
Salut, J'ai essayé et quand je change un fichier, il me demande (dans la console Web Storm) "Terminer le travail par lots (O / N)?". Je vois également que la commande en cours d'exécution est: "C: \ Program Files (x86) \ JetBrains \ WebStorm 8.0.4 \ bin \ runnerw.exe" C: \ Users \ xyz \ AppData \ Roaming \ npm \ nodemon.cmd - -debug-brk = 27344 --nolazy -q app.js. Est-ce que je manque quelque chose?
Tomer Cagan
1
pour le problème "terminer le travail par lots", ajoutez simplement "<nul" (ne pas laisser les guillemets) à l'entrée "Paramètres d'application". (réponse trouvée ici: superuser.com/a/498798 )
Tobias Weichart
Pourquoi est-ce voté? Cela ne fonctionnera pas, quand nodemon redémarre, il n'ajoute pas le "<nul" du démarrage initial, donc vous obtenez toujours "Terminer le travail par lots (O / N)?
KVM
18

Pour installer nodemon , utilisez ce qui suit (si nécessaire, utilisez sudo pour exécuter l'installation avec les privilèges root:

npm install -g nodemon

Cela installera nodemon globalement sur votre machine.

Ensuite, dans votre configuration d' exécution WebStorm , ajoutez ce qui suit, en laissant tout le reste inchangé:

  • Paramètres de nœud: /usr/local/bin/nodemon --exec /usr/local/bin/node

Cela demandera l'interpréteur de noeud pour exécuter le nodemonscript en utilisant la ligne de commande suivante: node /usr/local/bin/nodemon --exec /usr/local/bin/node server.js.

La --execpartie est importante, car l'exécution échouera avec l'erreur suivante:

/usr/local/bin/node /usr/local/bin/nodemon server.js
4 Oct 13:56:50 - [nodemon] v0.7.10
4 Oct 13:56:50 - [nodemon] to restart at any time, enter `rs`
4 Oct 13:56:50 - [nodemon] watching: /Users/foo/test
execvp(): No such file or directory
4 Oct 13:56:50 - [nodemon] starting `node server.js`
4 Oct 13:56:50 - [nodemon] exception in nodemon killing node
Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)

L'erreur semble être due au fait que WebStorm ne voit pas l' nodeexécutable sur son chemin.

Le correctif pour cela est de spécifier l'emplacement de l' nodeexécutable à l'aide du --exec /usr/local/bin/nodeparamètre.

En utilisant ces paramètres, nodemon fonctionne correctement lorsqu'il est exécuté à partir d'une configuration d' exécution WebStorm .

La même astuce pourrait devoir être utilisée avec certains des outils similaires à nodemon , par exemple node-supervisor .

nwinkler
la source
1
Cela fonctionne pour la configuration d'exécution, mais pas avec le débogage. Une idée de déboguer également avec nodemon dans Webstorm?
yves amsellem le
3
Au moins avec Webstorm 8 EAP et nodemon 1.0.15, vous n'avez plus à spécifier --exec. Tout ce que j'avais à faire était de l'utiliser /usr/local/bin/nodemondans les "Paramètres du nœud".
bernhardw
@bernhardw: Je peux confirmer la même chose
Bala Clark
18

Je suis sous Windows et pour moi, je n'ai pas travaillé avec nodemon (je ne sais pas pourquoi), mais quelqu'un de Jetbrains a suggéré d'essayer avec le superviseur:

  1. J'ai installé le superviseur: npm install supervisor -g

  2. Ensuite, trouvez où est supervisorinstallé, pour moi était dans: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error

  3. Je suis retourné à Intellij: modifier les configurations -> paramètres de nœud -> et j'ai ajouté: C: \ Users \ AlinC \ AppData \ Roaming \ npm \ node_modules \ supervisor \ lib \ cli-wrapper.js –no-restart-on error

modifier les configurations

paramètres de nœud

Alin Ciocan
la source
1
Pour vous arrêter au point d'arrêt, vous devez ajouter ceci: --debug-brket la chaîne complète est C:\Users\<username>\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js no-restart-on error --debug-brkCheck from jetbrains jetbrains.com/phpstorm/webhelp / ... address
uzay95
1
Impossible de faire fonctionner Nodemon sur Windows 8 avec Webstorm 9, cela a fonctionné comme un charme
Simon Trewhella
1
Fonctionne pour moi (Webstorm 11 sur Windows) mais les points d'arrêt ne fonctionnent pas. J'ai essayé d'ajouter --debug-brkmais pas de chance.
electrotype
14

Pour ceux qui s'intéressent à la solution sous Windows 10, voici ma configuration. Il ne montre pas la chose "Terminate Batch" et fonctionne parfaitement.

entrez la description de l'image ici

Vous appuyez une fois sur le débogage et vous pouvez enregistrer les fichiers de modification et le serveur redémarrera en mode débogage. Tous les points de freinage fonctionnent parfaitement

Denko Mancheski
la source
c'est une réponse de travail pour le débogage. Je ne règle que les paramètres de nœud. paramètres du nœud sous forme de texte (changer le nom d'utilisateur): c: \ users \ username \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js --debug = 3001
Alexey Obukhov
Cela n'a pas fonctionné pour moi. L'ajout du paramètre --debug = 3001 a planté nodemon
JCF
Merci. L'exécution de base fonctionne et aussi le débogage sans aucun problème! Cela devrait être la réponse TOP!
Georgi Peev
8

Pour les utilisateurs de Windows, définissez:

Node Interpreter: Chemin du node.exe, c'est-à-dire c: \ program files \ node \ node.exe

Paramètre de nœud: C: \ Users \ YOURUSER \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js

user3218817
la source
Cela a fonctionné pour moi! Le débogage et les points d'arrêt fonctionnent parfaitement. Node version 10.15.1 nodemon version 1.18.10 Webstorm 2018.3.5
JCF
5

Vous pouvez également le faire fonctionner avec nvm et le débogage fonctionne toujours.

Testé avec Node.js 8.1.0 et Webstorm 2017.2

Assurez-vous d'abord que vous êtes sur la bonne version (dans mon cas v8.1.0) et installez nodemon globalement -

nvm use v8.1.0
npm install -g nodemon

Ensuite, ouvrez les configurations Exécuter / Déboguer et créez-en une nouvelle avec l'interpréteur de nœud approprié.

Les paramètres de nœud doivent être:

MAC

/Users/[YOUR_USER]/.nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001

LINUX

/usr/local/nvm/versions/node/v8.1.0/bin/nodemon --inspect=3001

Enregistrez et déboguez à nouveau :)

Débogage de Node.js Nodemon Webstorm

Artipixel
la source
4

Voici la configuration qui fonctionne pour moi sur Windows 7 + WebStorm 8.0.4. Si je mets nodemon.cmd comme interpréteur de nœuds, j'obtiens toujours "Terminer le travail par lots (O / N)?".

Nodemon + Webstorm sous Windows

Robert Jakubowicz
la source
voir ma réponse concernant cette question sur Windows, je pense que vous pointiez vers le mauvais fichier nodemon.cmd
Alexander Mills
3

Si vous avez installé nodemon comme une bibliothèque globale, définissez simplement les paramètres du nœud:

C: \ Users \ $ {yourUser} \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js

nodemon dans webstorm

peterzinho16
la source
Fonctionne comme un charme grâce à nvm et npm 14.7.0
Eugene Zalivadnyi
2

C'est la seule chose qui a fonctionné pour moi:

  1. Ajoutez une nouvelle commande de script d'exécution du nœud package.json:

entrez la description de l'image ici

  1. Créer une configuration NPM (pas une configuration de nœud)
  2. Sélectionnez "start-watch" comme commande

entrez la description de l'image ici

Pour moi, cela a fonctionné pour le débogage / les points d'arrêt sans problèmes ni maux de tête supplémentaires.

L'humanité1023
la source
1

certaines de ces réponses semblent fonctionner uniquement pour Mac. Pour Windows, cette configuration semble fonctionner (mon nom d'utilisateur sur Windows 7 est denman).

entrez la description de l'image ici

main.js est le fichier de point de départ de mon application Express.

Alexander Mills
la source
0
  1. Faites une installation npm nodmemon -g
  2. Changez uniquement le chemin vers le nœud en nodemon.cmd, dans mon cas (C: \ Users \ Rohit Taneja \ AppData \ Roaming \ npm \ nodemon.cmd), vous obtiendrez également ce chemin une fois l'installation de nodemon terminée.

  3. Tu es prêt à partir

Rohit Taneja
la source
0

Selon le commentaire de @bernhardw, car c'était la réponse pour moi -

Tout ce qui est nécessaire est /usr/local/bin/nodemonsous node parameters Works pour l'exécution et le débogage car il redémarre lors des modifications, mais débogage avec point d'arrêt ne fonctionne pas.

Bonus: ajoutez -e pour plus d'extension, par exemple /usr/local/bin/nodemon -e js,html,jade

(osx 10.10.5, rubymine 7.1.4)

HTH

Hertzel Guinness
la source
0

npm installer -g nodemon

1* goto run->Edit Configurations->Press'+' at left corner and choose Node.js

2* Select Node.js and Press '+' 

3* Name as Nodemon, add path in javaScript file: C:\Users\Your_User_Name\AppData\Roaming\npm\node_modules\nodemon\bin\nodemon.js

4* Click Apply and Ok

5* Run the Nodemon

entrez la description de l'image icientrez la description de l'image ici

Mohammad Nabil
la source
0

Script dans package.json: "start": "nodemon --inspect -r babel-register src",

Première photo: exécutez le débogage et il commencera

Deuxième photo: connexion au nœud en cours d'exécution existant Réglages entrez la description de l'image ici

Viktor Bogutskii
la source
0

Voici un correctif pour une erreur que j'obtenais ...

Si vous utilisez un nodemon Windows + NodeJS +. Avec un IntelliJ - Exécuter la configuration.

ERROR: starting inspector on failed: address already in use

Lorsque j'utilise la version 1.19.1 de nodemon, j'obtiens l'erreur. Quand j'utilise la version 1.18.11 de nodemon, cela fonctionne!

Bonne chance...

Sagan
la source
0

Ajoutez simplement un nouveau script à package.jsonnodemon appelé (ou choisissez votre propre nom)

"scripts": {
  ...
  "nodemon": "nodemon ./bin/www"
}

Ensuite, allez dans Configuration Exécuter / Déboguer et ajoutez la configuration npm . Ensemble

  • Commande pour " exécuter "
  • Script vers " nodemon " (nom que vous avez choisi dans package.json)

exemple

OdkoPP
la source
0

J'ai un développement sous mac et comme OdkoPP l'indique, je l'ai fait fonctionner

"scripts": {
"build": "tsc",
"dev": "nodemon src/index.ts --exec ts-node"
},

Configurations d'exécution / débogage npm: Configurations d'exécution / débogage npm

Juan Camilo Holguin Lopez
la source