¿Cómo puedo ejecutar nodemon desde WebStorm?

84

Me gustaría usar nodemon desde el WebStorm IDE (versión 7). Nodemon observa uno o más archivos en mi carpeta de origen y reinicia el proceso de nodo (un servidor Express en este caso), cuando uno de los archivos de origen cambia.

¿Cómo configuro WebStorm para usar nodemon en una configuración de ejecución , de modo que el proceso del nodo se reinicie automáticamente?

Sin nodemon , uso la siguiente configuración en WebStorm, pero tengo que reiniciar el proceso del nodo cada vez que cambio algo en el archivo fuente:

  • Intérprete de nodo: /usr/local/bin/node
  • Directorio de trabajo: /Users/foo/test
  • Archivo JavaScript: server.js

Esto da como resultado una configuración de ejecución que se ejecuta node server.jsen el directorio especificado.

Desde la línea de comando, puedo usar el siguiente comando para usar nodemon para observar los cambios de archivo: nodemon server.jsen el directorio del proyecto.

¿Cómo necesito cambiar la configuración de WebStorm para que también use nodemon ?

nwinkler
fuente
Esta pregunta parece estar en la misma línea: stackoverflow.com/questions/11175041/…
nwinkler
Vea mi respuesta stackoverflow.com/a/52463378/7350853 está usando la versión más actualizada de Webstorm hasta ahora.
iwaduarte

Respuestas:

143

Parece que la solución alternativa con --execya no es necesaria, al menos cuando se usa la versión más reciente de nodemon y Webstorm 7 u 8.

Todo lo que tiene que hacer es especificar su ruta a nodemon obteniendo su ruta con la ejecución which nodemonen su consola (por ejemplo /usr/local/bin/nodemon) en "Parámetros de nodo":

Webstorm con nodemon

@Bela Clark, gracias por confirmar.

bernhardw
fuente
Solo probé esto, ahora funciona perfectamente bien. ¡Gracias por proporcionar una respuesta actualizada!
nwinkler
8
@bernhardw, webstorm no se detiene en los puntos de interrupción al iniciar el depurador con estas configuraciones. ¿Alguna idea de por qué?
Nik Sumeiko
4
Se las arregló para que nodemon y los puntos de interrupción funcionaran siguiendo estas instrucciones: vcfvct.wordpress.com/2015/02/13/… Tenga en cuenta que usé --debug-brk en lugar de --debug
n00b
1
Para que la depuración funcione, tuve que usar la conexión Live Edit para IntelliJ en lugar de nodemon.
engin
1
Buena respuesta ! Gracias
Julien
33

Esta es la solución de Windows

Puede usar nodemon.cmd en lugar del nodo directamente como:

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*/

y entonces :

ingrese la descripción de la imagen aquí

Espero que te ayude.

RPDeshaies
fuente
Pensé que esta era la respuesta más sencilla.
Paul Wade
6
Hola, Intenté esto y cuando cambio un archivo me pregunta (en la consola de Web Storm) "¿Terminar trabajo por lotes (S / N)?". También veo que el comando que se está ejecutando es: "C: \ Archivos de programa (x86) \ JetBrains \ WebStorm 8.0.4 \ bin \ runnerw.exe" C: \ Users \ xyz \ AppData \ Roaming \ npm \ nodemon.cmd - -debug-brk = 27344 --nolazy -q app.js. ¿Me estoy perdiendo algo?
Tomer Cagan
1
para el problema de "terminar trabajo por lotes", simplemente agregue "<nul" (omita las comillas) a la entrada "Parámetros de la aplicación". (La respuesta se encuentra aquí: superuser.com/a/498798 )
Tobias Weichart
¿Por qué se vota a favor? No funcionará, cuando nodemon se reinicia no agrega el "<nul" desde el inicio inicial, por lo que aún obtiene "¿Terminar trabajo por lotes (Y / N)?"
KVM
18

Para instalar nodemon , use lo siguiente (si es necesario, use sudo para ejecutar la instalación con privilegios de root:

npm install -g nodemon

Esto instalará nodemon globalmente en su máquina.

Luego, en su Configuración de ejecución de WebStorm , agregue lo siguiente, dejando todo lo demás sin cambios:

  • Parámetros de nodo: /usr/local/bin/nodemon --exec /usr/local/bin/node

Esto le indica al intérprete de nodo para ejecutar la nodemonsecuencia de comandos mediante la línea de comandos siguiente: node /usr/local/bin/nodemon --exec /usr/local/bin/node server.js.

La --execpieza es importante, ya que la ejecución fallará con el siguiente error:

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

El error parece deberse a que WebStorm no ve el nodeejecutable en su ruta.

La solución para esto es especificar la ubicación del nodeejecutable usando el --exec /usr/local/bin/nodeparámetro.

Con esta configuración, nodemon funciona bien cuando se ejecuta desde una configuración de ejecución de WebStorm .

Es posible que tenga que utilizar el mismo truco con algunas de las herramientas similares a nodemon , por ejemplo, node-supervisor .

nwinkler
fuente
1
Esto funciona para Ejecutar configuración, pero no para Depurar. ¿Alguna idea de depurar también con nodemon en webstorm?
yves amsellem
3
Al menos con Webstorm 8 EAP y nodemon 1.0.15 no tiene que especificar --execmás. Todo lo que tenía que hacer era usarlo /usr/local/bin/nodemonen "Parámetros de nodo".
bernhardw
@bernhardw: Puedo confirmar lo mismo
Bala Clark
18

Estoy en Windows y para mí no funcionó con nodemon (no tengo idea de por qué), pero alguien de Jetbrains sugirió probar con el supervisor:

  1. Instalé supervisor: npm install supervisor -g

  2. Luego encuentre dónde está supervisorinstalado, para mí estaba en: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error

  3. Volví a Intellij: editar configuraciones -> parámetros de nodo -> y agregué: C: \ Users \ AlinC \ AppData \ Roaming \ npm \ node_modules \ supervisor \ lib \ cli-wrapper.js –no-restart-on error

editar configuraciones

parámetros de nodo

Alin Ciocan
fuente
1
Para detenerse en el punto de interrupción, debe agregar esto: --debug-brky la cadena completa es 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
No se pudo hacer que nodemon funcionara en Windows 8 con Webstorm 9, esto funcionó como un encanto aunque
Simon Trewhella
1
Funciona para mí (Webstorm 11 en Windows) pero los puntos de interrupción no funcionan. Intenté agregar --debug-brkpero no tuve suerte.
electrotipo
14

Para aquellos interesados ​​en la solución en Windows 10, aquí está mi configuración. No muestra el mensaje "Terminar Batch" y funciona perfectamente.

ingrese la descripción de la imagen aquí

Presiona depurar UNA VEZ y luego puede guardar los archivos de cambio y el servidor se reiniciará en modo de depuración. Todos los puntos de freno funcionan perfectamente

Denko Mancheski
fuente
esta es la respuesta de trabajo para la depuración. Solo configuro parámetros de nodo. parámetros de nodo como texto (cambiar nombre de usuario): c: \ users \ username \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js --debug = 3001
Alexey Obukhov
Esto no funcionó para mí. Al agregar el parámetro --debug = 3001 se bloqueó nodemon
JCF
Gracias. ¡La ejecución básica está funcionando y también la depuración sin ningún problema! ¡Esta debería ser la respuesta TOP!
Georgi Peev
8

Para usuarios de Windows configurados:

Intérprete de nodo: ruta de node.exe, es decir, c: \ archivos de programa \ node \ node.exe

Parámetro de nodo: C: \ Users \ YOURUSER \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js

user3218817
fuente
¡Esto funcionó para mí! Los puntos de depuración y interrupción funcionan perfectamente. Nodo versión 10.15.1 nodemon versión 1.18.10 Webstorm 2018.3.5
JCF
5

También puede hacer que funcione con nvm y la depuración aún funciona.

Probado con Node.js 8.1.0 y Webstorm 2017.2

Primero asegúrese de estar en la versión correcta (en mi caso v8.1.0) e instale nodemon globalmente -

nvm use v8.1.0
npm install -g nodemon

Luego, abra las configuraciones Ejecutar / Depurar y cree una nueva con el intérprete de nodo correcto.

Los parámetros de nodo deben ser:

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

Guardar y depurar respponsibally :)

Depuración de Node.js nodemon webstorm

Artipixel
fuente
4

Aquí está la configuración que me funciona en Windows 7 + WebStorm 8.0.4. Si pongo nodemon.cmd como intérprete de nodo, seguía recibiendo "¿Terminar trabajo por lotes (S / N)?".

Nodemon + Webstorm en Windows

Robert Jakubowicz
fuente
vea mi respuesta con respecto a esta pregunta en Windows, creo que estaba apuntando al archivo nodemon.cmd incorrecto
Alexander Mills
3

En caso de que haya instalado nodemon como una biblioteca global, simplemente establezca los parámetros de nodo:

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

nodemon en webstorm

peterzinho16
fuente
Funciona como un encanto a través de nvm y npm 14.7.0
Eugene Zalivadnyi
2

Esto es lo único que funcionó para mí:

  1. Agregue un nuevo comando de secuencia de comandos de ejecución de nodo package.json:

ingrese la descripción de la imagen aquí

  1. Cree una configuración de NPM (no una configuración de nodo)
  2. Seleccione "iniciar la vigilancia" como comando

ingrese la descripción de la imagen aquí

Para mí, esto funcionó para la depuración / puntos de interrupción sin problemas ni dolores de cabeza adicionales.

Humanidad1023
fuente
1

algunas de estas respuestas parecen funcionar solo para Mac. Para Windows, esta configuración parece funcionar (mi nombre de usuario en Windows 7 es denman).

ingrese la descripción de la imagen aquí

main.js es el archivo de punto de partida para mi aplicación Express.

Alexander Mills
fuente
0
  1. Hacer una instalación npm nodmemon -g
  2. Solo cambie la ruta al nodo a nodemon.cmd, en mi caso (C: \ Users \ Rohit Taneja \ AppData \ Roaming \ npm \ nodemon.cmd), también obtendrá esta ruta después de que finalice la instalación de nodemon.

  3. Eres bueno para ir

Rohit Taneja
fuente
0

Según el comentario de @bernhardw, ya que esta fue la respuesta para mí:

Todo lo que se necesita está /usr/local/bin/nodemonen node parameters Works para ejecutar y depurar, ya que se reinicia con los cambios, pero la depuración con punto de interrupción no funciona.

Bono: agregue -e para más extensión, por ejemplo /usr/local/bin/nodemon -e js,html,jade

(osx 10.10.5, rubymine 7.1.4)

HTH

Hertzel Guinness
fuente
0

npm install -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

ingrese la descripción de la imagen aquíingrese la descripción de la imagen aquí

Mohammad nabil
fuente
0

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

Primera imagen: Ejecute la depuración y comenzará

Segunda imagen: adjuntar al nodo en ejecución existente Configuraciones ingrese la descripción de la imagen aquí

Viktor Bogutskii
fuente
0

Aquí hay una solución para un error que estaba recibiendo ...

Si está utilizando Windows + NodeJS + nodemon. Con IntelliJ - Configuración de ejecución.

ERROR: starting inspector on failed: address already in use

Cuando utilizo la versión 1.19.1 de nodemon, aparece el error. Cuando uso la versión 1.18.11 de nodemon, ¡funciona!

Buena suerte...

Sagan
fuente
0

Simplemente agregue un nuevo script al package.jsonllamado nodemon (o elija su propio nombre)

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

Luego vaya a Ejecutar / Depurar configuración y agregue la configuración npm . Conjunto

  • Comando para " ejecutar "
  • Script para " nodemon " (nombre que eligió en package.json)

ejemplo

OdkoPP
fuente
0

Tengo un desarrollo en mac y, como OdkoPP indica, lo hice funcionar

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

Configuraciones de ejecución / depuración npm: Configuraciones de ejecución / depuración npm

Juan Camilo Holguin López
fuente