Como posso executar o nodemon de dentro do WebStorm?

85

Eu gostaria de usar o nodemon de dentro do IDE WebStorm (versão 7). O Nodemon observa um ou mais arquivos em minha pasta de origem e reinicia o processo do nó (um servidor Express neste caso), quando um dos arquivos de origem muda.

Como configuro o WebStorm para usar o nodemon em uma configuração de execução , de modo que o processo do nó seja reiniciado automaticamente?

Sem o nodemon , eu uso a seguinte configuração no WebStorm, mas tenho que reiniciar o processo do nó sempre que mudar algo no arquivo de origem:

  • Intérprete de nó: /usr/local/bin/node
  • Diretório de trabalho: /Users/foo/test
  • Arquivo JavaScript: server.js

Isso resulta em uma Configuração de Execução que é executada node server.jsno diretório especificado.

Na linha de comando, posso usar o seguinte comando para usar o nodemon para observar as alterações do arquivo: nodemon server.jsno diretório do projeto.

Como preciso alterar a configuração do WebStorm para que ele também use o nodemon ?

Nwinkler
fonte
Esta pergunta parece seguir as mesmas linhas: stackoverflow.com/questions/11175041/…
nwinkler
Veja minha resposta stackoverflow.com/a/52463378/7350853 está usando a versão mais atualizada do Webstorm até agora.
iwaduarte

Respostas:

146

Parece que a solução alternativa --execnão é mais necessária, pelo menos ao usar a versão mais recente do nodemon e Webstorm 7 ou 8.

Tudo que você precisa fazer é especificar o seu caminho para o nodemon , obtendo o seu caminho com a execução which nodemonem seu console (por exemplo /usr/local/bin/nodemon) em "Parâmetros do nó":

Webstorm com nodemon

@Bela Clark, obrigada por confirmar.

Bernhardw
fonte
Experimentei - agora funciona perfeitamente bem. Obrigado por fornecer uma resposta atualizada!
nwinkler
8
@bernhardw, o webstorm não para em pontos de interrupção ao iniciar o depurador com essas configurações. Alguma ideia do porquê?
Nik Sumeiko
4
Conseguiu fazer com que o nodemon e os pontos de interrupção funcionassem seguindo estas instruções: vcfvct.wordpress.com/2015/02/13/… Observe que usei --debug-brk em vez de --debug
n00b
1
Para fazer a depuração funcionar, tive que usar o plug-in Live Edit para IntelliJ em vez do nodemon.
engin
1
Boa resposta ! Obrigado
Julien
35

Esta é a solução do Windows

Você pode apenas usar o nodemon.cmd em vez do nó diretamente 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*/

e depois :

insira a descrição da imagem aqui

Espero que ajude você.

RPDeshaies
fonte
Achei que essa era a resposta mais direta.
Paul Wade
6
Olá, Tentei fazer isso e quando mudo um arquivo, ele me pergunta (no console do Web Storm) "Terminar trabalho em lote (S / N)?". Também vejo que o comando que está sendo executado é: "C: \ Arquivos de programas (x86) \ JetBrains \ WebStorm 8.0.4 \ bin \ runnerw.exe" C: \ Usuários \ xyz \ AppData \ Roaming \ npm \ nodemon.cmd - -debug-brk = 27344 --nolazy -q app.js. Estou perdendo alguma coisa?
Tomer Cagan
1
para o problema "encerrar trabalho em lote", basta adicionar "<nul" (omitir aspas) à entrada "Parâmetros do aplicativo". (resposta encontrada aqui: superuser.com/a/498798 )
Tobias Weichart
Por que isso foi votado? Não funcionará, quando o nodemon for reiniciado, ele não adiciona o "<nul" do início inicial, então você ainda obtém "Terminar trabalho em lote (S / N)?"
KVM
a localização no Windows é C: \ Users \ <utilizador> \ AppData \ Roaming \ npm \ nodemon.cmd
xor
18

Para instalar o nodemon , use o seguinte (se necessário, use sudo para executar a instalação com privilégios de root:

npm install -g nodemon

Isso irá instalar o nodemon globalmente em sua máquina.

Em seguida, em sua configuração de execução do WebStorm , adicione o seguinte, deixando todo o resto inalterado:

  • Parâmetros do nó: /usr/local/bin/nodemon --exec /usr/local/bin/node

Isso instruirá o intérprete de nó a executar o nodemonscript usando a seguinte linha de comando:node /usr/local/bin/nodemon --exec /usr/local/bin/node server.js .

A --execparte é importante, pois a execução irá falhar com o seguinte erro:

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

O erro parece ser causado por WebStorm não ver o node executável em seu caminho.

A solução para isso é especificar a localização do nodeexecutável usando o--exec /usr/local/bin/node parâmetro.

Usando essas configurações, o nodemon funciona bem quando executado a partir de uma configuração de execução do WebStorm .

O mesmo truque pode ter de ser usado com algumas das ferramentas semelhantes ao nodemon , por exemplo, node-supervisor .

Nwinkler
fonte
1
Isso funciona para Run Configuration, mas não com Debug. Alguma idéia de Debug também com o nodemon no webstorm?
yves amsellem
3
Pelo menos com Webstorm 8 EAP e nodemon 1.0.15 você não precisa --execmais especificar . Tudo que eu tive que fazer foi usar /usr/local/bin/nodemonem "Parâmetros do nó".
Bernhardw,
@bernhardw: Posso confirmar o mesmo
Bala Clark
18

Estou no Windows e para mim não funcionou com o nodemon (não tenho ideia do porquê), mas alguém da Jetbrains sugeriu tentar com o supervisor:

  1. Eu instalei o supervisor: npm install supervisor -g

  2. Então descubra onde está supervisorinstalado, para mim estava em: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error

  3. Voltei ao Intellij: editar configurações -> parâmetros de nó -> e adicionei: C: \ Usuários \ AlinC \ AppData \ Roaming \ npm \ node_modules \ supervisor \ lib \ cli-wrapper.js - erro sem reinicialização

editar configurações

parâmetros do nó

Alin Ciocan
fonte
1
Para parar no ponto de interrupção, você deve adicionar isto: --debug-brke a string completa é 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/… endereço
uzay95
1
Não foi possível fazer o nodemon funcionar no Windows 8 com o Webstorm 9, funcionou
perfeitamente
1
Funciona para mim (Webstorm 11 no Windows), mas os pontos de interrupção não funcionam. Tentei adicionar, --debug-brkmas sem sorte.
eletrótipo
14

Para os interessados ​​na solução em Windows 10, aqui está minha configuração. Ele não mostra a coisa "Terminate Batch" e funciona perfeitamente.

insira a descrição da imagem aqui

Você pressiona debug UMA VEZ e pode salvar os arquivos de mudança e o servidor irá reiniciar no modo de depuração. Todos os pontos de freio estão funcionando perfeitamente

Denko Mancheski
fonte
esta é uma resposta funcional para depuração. Eu defino apenas os parâmetros do nó. parâmetros de nó como texto (alterar nome de usuário): c: \ users \ username \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js --debug = 3001
Alexey Obukhov
Isso não funcionou para mim. Adicionando o parâmetro --debug = 3001 crashed nodemon
JCF
Obrigado. A execução básica está funcionando e também a depuração sem problemas! Esta deve ser a resposta SUPERIOR!
Georgi Peev
8

Para usuários do Windows, defina:

Intérprete de nó: caminho do node.exe, ou seja, c: \ arquivos de programas \ node \ node.exe

Parâmetro do nó: C: \ Users \ YOURUSER \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js

user3218817
fonte
Isso funcionou para mim! Os pontos de depuração e de interrupção funcionam perfeitamente. Node versão 10.15.1 nodemon versão 1.18.10 Webstorm 2018.3.5
JCF
5

Você também pode fazer funcionar com nvm e a depuração ainda funciona.

Testado com Node.js 8.1.0 e Webstorm 2017.2

Primeiro, certifique-se de que está com a versão correta (no meu caso, v8.1.0) e instale o nodemon globalmente -

nvm use v8.1.0
npm install -g nodemon

Em seguida, abra as configurações de Executar / Depurar e crie uma nova com o interpretador de nó correto.

Os parâmetros do nó devem 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

Salve e depure respponsibally :)

Node.js nodemon webstorm debug

Artipixel
fonte
4

Esta é a configuração que funciona para mim no Windows 7 + WebStorm 8.0.4. Se eu colocar nodemon.cmd como interpretador de nó, continuo recebendo "Terminar trabalho em lote (S / N)?".

Nodemon + Webstorm no Windows

Robert Jakubowicz
fonte
veja minha resposta em relação a esta pergunta no Windows, acho que você estava apontando para o arquivo nodemon.cmd errado
Alexander Mills
3

Caso você tenha instalado o nodemon como uma biblioteca global, basta definir os parâmetros do nó:

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

nodemon em webstorm

Peterzinho16
fonte
Funciona perfeitamente em nvm e npm 14.7.0
Eugene Zalivadnyi
2

Esta é a única coisa que funcionou para mim:

  1. Adicione um novo comando de script de execução de nó package.json:

insira a descrição da imagem aqui

  1. Crie uma CONFIG NPM (não uma configuração de nó)
  2. Selecione "start-watch" como o comando

insira a descrição da imagem aqui

Para mim, isso funcionou para depuração / pontos de interrupção sem problemas ou dor de cabeça adicional.

Mankind1023
fonte
1

algumas dessas respostas parecem funcionar apenas para Mac. Para Windows, esta configuração parece funcionar (meu nome de usuário no Windows 7 é denman).

insira a descrição da imagem aqui

main.js é o arquivo de ponto de partida para meu aplicativo Express.

Alexander Mills
fonte
0
  1. Faça um npm install nodmemon -g
  2. Apenas altere o caminho para o nó para o nodemon.cmd, no meu caso (C: \ Users \ Rohit Taneja \ AppData \ Roaming \ npm \ nodemon.cmd), você também obterá este caminho após a conclusão da instalação do nodemon.

  3. Você está pronto para ir

Rohit Taneja
fonte
0

Por comentário de @bernhardw, já que esta foi a resposta para mim -

Tudo o que é necessário está /usr/local/bin/nodemonem node parameters Works para executar e depurar à medida que ele reinicia após as alterações, mas a depuração com ponto de interrupção não funciona.

Bônus: adicione -e para mais extensão, por exemplo /usr/local/bin/nodemon -e js,html,jade

(osx 10.10.5, rubimina 7.1.4)

HTH

Hertzel Guinness
fonte
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

insira a descrição da imagem aquiinsira a descrição da imagem aqui

Mohammad nabil
fonte
0

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

Primeira foto: execute a depuração e ela começará

Segunda foto: anexando ao nó em execução existente Configurações insira a descrição da imagem aqui

Viktor Bogutskii
fonte
0

Aqui está uma correção para um erro que eu estava recebendo ...

Se você estiver usando um Windows + NodeJS + nodemon. Com um IntelliJ - Configuração de execução.

ERROR: starting inspector on failed: address already in use

Quando eu uso o nodemon versão 1.19.1, recebo o erro. Quando eu uso o nodemon versão 1.18.11, ele funciona!

Boa sorte...

Sagan
fonte
0

Basta adicionar um novo script ao package.jsonchamado nodemon (ou escolher seu próprio nome)

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

Em seguida, vá para Run / Debug Configuration e adicione a configuração npm . Conjunto

  • Comando para " executar "
  • Script para " nodemon " (nome que você escolheu em package.json)

exemplo

OdkoPP
fonte
0

Eu tenho um desenvolvimento em mac e como o OdkoPP indica eu fiz funcionar

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

Configurações de execução / depuração npm: Executar / depurar configurações npm

Juan Camilo Holguin Lopez
fonte