Jak mogę uruchomić nodemon z poziomu WebStorm?

84

Chciałbym używać nodemona z poziomu WebStorm IDE (wersja 7). Nodemon obserwuje jeden lub więcej plików w moim folderze źródłowym i ponownie uruchamia proces węzła (w tym przypadku serwer Express), gdy zmieni się jeden z plików źródłowych.

Jak skonfigurować WebStorm, aby używał nodemon w Run Configuration , tak aby proces węzła był automatycznie restartowany?

Bez nodemona używam następującej konfiguracji w WebStorm, ale muszę ponownie uruchomić proces węzła za każdym razem, gdy zmienię coś w pliku źródłowym:

  • Interpreter węzłów: /usr/local/bin/node
  • Katalog roboczy: /Users/foo/test
  • Plik JavaScript: server.js

Powoduje to uruchomienie konfiguracji, która działa node server.jsw określonym katalogu.

Z wiersza poleceń mogę użyć następującego polecenia, aby użyć nodemona do obserwowania zmian plików: nodemon server.jsw katalogu projektu.

Jak mam zmienić konfigurację WebStorm, aby również używał nodemon ?

nwinkler
źródło
To pytanie wydaje się być podobne: stackoverflow.com/questions/11175041/ ...
nwinkler
Zobacz moją odpowiedź stackoverflow.com/a/52463378/7350853 korzysta z najnowszej jak dotąd wersji Webstorm.
iwaduarte

Odpowiedzi:

143

Wygląda na to, że obejście --execnie jest już konieczne, przynajmniej w przypadku korzystania z najnowszej wersji nodemon i Webstorm 7 lub 8.

Wszystko, co musisz zrobić, to podać ścieżkę do nodemona , uzyskując ścieżkę do uruchomienia which nodemonw konsoli (np. /usr/local/bin/nodemon) W sekcji „Parametry węzła”:

Burza internetowa z nodemonem

@Bela Clark, dzięki za potwierdzenie.

bernhardw
źródło
Właśnie spróbowałem - teraz działa doskonale. Dziękujemy za udzielenie zaktualizowanej odpowiedzi!
nwinkler
8
@bernhardw, burza internetowa nie zatrzymuje się na punktach przerwania podczas uruchamiania debugera z tymi konfiguracjami. Każdy pomysł, dlaczego?
Nik Sumeiko
4
Udało mi się uzyskać działanie nodemona i punktów przerwania, postępując zgodnie z następującymi instrukcjami: vcfvct.wordpress.com/2015/02/13/… Zauważ, że użyłem --debug-brk zamiast --debug
n00b
1
Aby debugowanie działało, musiałem użyć wtyczki Live Edit dla IntelliJ zamiast nodemon.
engin
1
Dobra odpowiedź ! Dziękuję
Julien
33

To jest rozwiązanie Windows

Możesz po prostu użyć nodemon.cmd zamiast node bezpośrednio, jak:

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

i wtedy :

wprowadź opis obrazu tutaj

Mam nadzieję, że to ci pomoże.

RPDeshaies
źródło
Myślałem, że to najprostsza odpowiedź.
Paul Wade
6
Cześć, Próbowałem tego i kiedy zmieniam plik, pyta mnie (w konsoli Web Storm) „Zakończenie zadania wsadowego (T / N)?”. Widzę również, że wykonywane polecenie to: „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. Czy coś mi brakuje?
Tomer Cagan
1
w przypadku problemu „zakończenie zadania wsadowego” po prostu dodaj „<nul” (pomiń cudzysłowy) do pola wejściowego „Parametry aplikacji”. (odpowiedź znaleziona tutaj: superuser.com/a/498798 )
Tobias Weichart
Dlaczego jest to przegłosowane? To nie zadziała, gdy nodemon uruchomi się ponownie, nie doda "<nul" od początkowego startu, więc nadal otrzymujesz "Zakończenie zadania wsadowego (T / N)?"
KVM
18

Aby zainstalować nodemon , użyj następującego (w razie potrzeby użyj sudo, aby uruchomić instalację z uprawnieniami roota:

npm install -g nodemon

Spowoduje to globalną instalację nodemona na twoim komputerze.

Następnie w konfiguracji uruchamiania WebStorm dodaj następujące elementy, pozostawiając wszystko inne bez zmian:

  • Parametry węzła: /usr/local/bin/nodemon --exec /usr/local/bin/node

To instruować tłumacza węzła wykonać nodemonskrypt za pomocą następującego polecenia: node /usr/local/bin/nodemon --exec /usr/local/bin/node server.js.

--execCzęść jest ważna, gdy wykonanie nie powiedzie się z powodu następującego błędu:

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

Wydaje się, że błąd jest spowodowany tym, że WebStorm nie widzi nodepliku wykonywalnego na swojej ścieżce.

Rozwiązaniem tego problemu jest określenie lokalizacji nodepliku wykonywalnego za pomocą --exec /usr/local/bin/nodeparametru.

Korzystając z tych ustawień, nodemon działa dobrze, gdy jest uruchamiany z WebStorm Run Configuration .

Ta sama sztuczka mogłaby zostać zastosowana w przypadku niektórych narzędzi podobnych do nodemona , np. Node-supervisor .

nwinkler
źródło
1
Działa to w przypadku uruchamiania konfiguracji, ale nie w przypadku debugowania. Masz jakiś pomysł na debugowanie również za pomocą nodemon w webstorm?
yves amsellem
3
Przynajmniej w przypadku Webstorm 8 EAP i nodemon 1.0.15 nie musisz --execjuż określać . Wszystko, co musiałem zrobić, to użyć /usr/local/bin/nodemonw "Parametry węzła".
bernhardw
@bernhardw: Mogę potwierdzić to samo
Bala Clark
18

Jestem na Windowsie i nie współpracowałem z nodemonem (nie mam pojęcia dlaczego), ale ktoś z Jetbrains zasugerował, aby spróbować z przełożonym:

  1. Zainstalowałem nadzorcę: npm install supervisor -g

  2. Następnie znajdź, gdzie jest supervisorzainstalowany, dla mnie był: C:\Users\AlinC\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js –no-restart-on error

  3. Wróciłem do Intellij: edytuj konfiguracje -> parametry węzła -> i dodałem: C: \ Users \ AlinC \ AppData \ Roaming \ npm \ node_modules \ supervisor \ lib \ cli-wrapper.js –no-restart-on error

edytować konfiguracje

parametry węzła

Alin Ciocan
źródło
1
Aby zatrzymać się na punkcie przerwania, należy dodać to: --debug-brka cały ciąg to C:\Users\<username>\AppData\Roaming\npm\node_modules\supervisor\lib\cli-wrapper.js no-restart-on error --debug-brkSprawdź z jetbrains jetbrains.com/phpstorm/webhelp/ ... adres
uzay95
1
Nie można było uruchomić nodemona w systemie Windows 8 z Webstorm 9, to działało jak urok
Simon Trewhella
1
U mnie działa (Webstorm 11 w systemie Windows), ale punkty przerwania nie działają. Próbowałem dodać, --debug-brkale bez powodzenia.
elektrotyp
14

Dla zainteresowanych rozwiązaniem w Windows 10 oto moja konfiguracja. Nie pokazuje "Terminate Batch" i działa doskonale.

wprowadź opis obrazu tutaj

Naciskasz debuguj RAZ i wtedy możesz zapisać pliki zmian cokolwiek, a serwer uruchomi się ponownie w trybie debugowania. Wszystkie punkty hamowania działają idealnie

Denko Mancheski
źródło
to działa odpowiedź do debugowania. Ustawiam tylko parametry węzła. parametry węzła jako tekst (zmień nazwę użytkownika): c: \ users \ nazwa_użytkownika \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js --debug = 3001
Alexey Obukhov
To nie zadziałało dla mnie. Dodanie parametru --debug = 3001 spowodowało awarię nodemona
JCF
Dzięki, uruchomienie podstawowe działa, a także debugowanie bez żadnych problemów! To powinna być NAJLEPSZA odpowiedź!
Georgi Peev
8

Dla użytkowników systemu Windows ustawiono:

Interpreter węzła: ścieżka do pliku node.exe, czyli c: \ program files \ node \ node.exe

Parametr węzła: C: \ Users \ YOURUSER \ AppData \ Roaming \ npm \ node_modules \ nodemon \ bin \ nodemon.js

user3218817
źródło
To zadziałało dla mnie! Punkty debugowania i przerwania działają doskonale. Węzeł w wersji 10.15.1 nodemon w wersji 1.18.10 Webstorm 2018.3.5
JCF
5

Możesz także sprawić, by działał z NVM, a debugowanie nadal działa.

Testowane z Node.js 8.1.0 i Webstorm 2017.2

Najpierw upewnij się, że masz odpowiednią wersję (w moim przypadku v8.1.0) i zainstaluj nodemon globalnie -

nvm use v8.1.0
npm install -g nodemon

Następnie otwórz konfiguracje Run / Debug i utwórz nową z poprawnym interpreterem węzłów.

Parametry węzła powinny być:

PROCHOWIEC

/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

Zapisz i debuguj odpowiednio :)

Node.js nodemon webstorm debug

Artipixel
źródło
4

Oto konfiguracja, która działa dla mnie w systemie Windows 7 + WebStorm 8.0.4. Jeśli umieściłem nodemon.cmd jako interpreter węzła, otrzymywałem komunikat „Zakończenie zadania wsadowego (T / N)?”.

Nodemon + Webstorm w systemie Windows

Robert Jakubowicz
źródło
zobacz moją odpowiedź na to pytanie w systemie Windows, myślę, że wskazałeś na niewłaściwy plik nodemon.cmd
Alexander Mills,
3

Jeśli zainstalowałeś nodemona jak globalną bibliotekę, po prostu ustaw parametry węzła:

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

nodemon w burzy internetowej

peterzinho16
źródło
Działa jak urok przez nvm i npm 14.7.0
Eugene Zalivadnyi
2

To jedyna rzecz, która zadziałała dla mnie:

  1. Dodaj nowe polecenie skryptu uruchamiania węzła package.json:

wprowadź opis obrazu tutaj

  1. Utwórz NPM CONFIG (nie konfigurację węzła)
  2. Wybierz polecenie „start-watch”

wprowadź opis obrazu tutaj

U mnie to działało w przypadku debugowania / punktów przerwania bez problemów lub dodatkowego bólu głowy.

Ludzkość1023
źródło
1

niektóre z tych odpowiedzi działają tylko na komputerach Mac. W przypadku systemu Windows ta konfiguracja wydaje się działać (moja nazwa użytkownika w systemie Windows 7 to denman).

wprowadź opis obrazu tutaj

main.js to plik punktu wyjścia dla mojej aplikacji Express.

Alexander Mills
źródło
0
  1. Wykonaj npm install nodmemon -g
  2. Zmień ścieżkę do węzła tylko na nodemon.cmd, w moim przypadku (C: \ Users \ Rohit Taneja \ AppData \ Roaming \ npm \ nodemon.cmd), otrzymasz również tę ścieżkę po zakończeniu instalacji nodemon.

  3. Jesteś gotowy

Rohit Taneja
źródło
0

Za komentarz @bernhardw, bo to była odpowiedź dla mnie -

Wszystko, co jest potrzebne, znajduje się w /usr/local/bin/nodemonobszarze node parameters Works do uruchamiania i debugowania, ponieważ uruchamia się ponownie po zmianach, ale debugowanie z punktem przerwania nie działa.

Bonus: dodaj -e dla większego rozszerzenia np /usr/local/bin/nodemon -e js,html,jade

(osx 10.10.5, rubymina 7.1.4)

HTH

Hertzel Guinness
źródło
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

wprowadź opis obrazu tutajwprowadź opis obrazu tutaj

Mohammad nabil
źródło
0

Skrypt w package.json: "start": "nodemon --inspect -r babel-register src",

Pierwsze zdjęcie: Uruchom debugowanie, a to się rozpocznie

Drugie zdjęcie: dołączanie do istniejącego działającego węzła Ustawienia wprowadź opis obrazu tutaj

Viktor Bogutskii
źródło
0

Oto poprawka dotycząca błędu, który otrzymuję ...

Jeśli używasz nodemona Windows + NodeJS +. Z konfiguracją IntelliJ - Run.

ERROR: starting inspector on failed: address already in use

Kiedy używam nodemon w wersji 1.19.1, pojawia się błąd. Kiedy używam nodemon w wersji 1.18.11, to działa!

Powodzenia...

Sagan
źródło
0

Po prostu dodaj nowy skrypt do package.jsonnazwanego nodemona (lub wybierz własne imię)

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

Następnie przejdź do Run / Debug Configuration i dodaj konfigurację npm . Zestaw

  • Polecenieuruchomienia
  • Skrypt do „ nodemon ” (nazwa wybrana w package.json)

przykład

OdkoPP
źródło
0

Mam rozwój w Macu i jak wskazuje OdkoPP, sprawiłem, że zadziałało

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

Konfiguracje uruchamiania / debugowania npm: Konfiguracje uruchamiania / debugowania npm

Juan Camilo Holguin Lopez
źródło