Nodemon: Automatyczne restartowanie aplikacji Node.js dla szybszego developmentu

MS

Marcin Stawowczyk · @m7rlin

3 min czytania ·

Podczas tworzenia aplikacji w Node.js, szczególnie serwerów webowych, typowy cykl pracy wygląda tak:

  1. Napisz lub zmodyfikuj kod.

  2. Zatrzymaj działający serwer (zazwyczaj przez Ctrl + C w terminalu).

  3. Uruchom serwer ponownie (node nazwa_pliku.js).

  4. Przetestuj zmiany w przeglądarce lub innym narzędziu.

  5. Powtórz...

Chociaż działa, ten proces szybko staje się monotonny i czasochłonny, zwłaszcza przy częstych, drobnych poprawkach. Każde ręczne zatrzymanie i uruchomienie to kilka straconych sekund, które sumują się w ciągu dnia. Na szczęście istnieje proste rozwiązanie tego problemu: Nodemon.

Co to jest Nodemon?

nodejs-nodemon-logo.png

Nodemon to popularne narzędzie (pakiet NPM) stworzone specjalnie na potrzeby developmentu aplikacji Node.js. Jego głównym zadaniem jest monitorowanie zmian w plikach Twojego projektu. Gdy Nodemon wykryje, że plik został zapisany (czyli zmodyfikowany), automatycznie restartuje Twoją aplikację Node.js.

Działa jak "strażnik", który obserwuje Twój kod i wykonuje za Ciebie nudne zadanie ponownego uruchamiania serwera.

Ważne: Nodemon jest narzędziem deweloperskim. Nie powinieneś go używać do uruchamiania aplikacji w środowisku produkcyjnym. Tam stosuje się inne narzędzia do zarządzania procesami, takie jak PM2 czy systemd.

Dlaczego warto używać Nodemon?

  • Oszczędność czasu: Koniec z ręcznym Ctrl + C i node app.js po każdej zmianie. Nodemon robi to za Ciebie.

  • Większa produktywność: Mniej przerw w pracy oznacza płynniejszy workflow i szybsze postępy.

  • Szybszy cykl informacji zwrotnej: Natychmiast widzisz efekt swoich zmian po zapisaniu pliku.

  • Mniej frustracji: Eliminacja powtarzalnej, manualnej czynności poprawia komfort pracy.

Jak zainstalować Nodemon?

Nodemon instalujemy jako zależność deweloperską (devDependency), ponieważ potrzebujemy go tylko podczas tworzenia aplikacji, a nie do jej działania na produkcji.

Otwórz terminal w katalogu swojego projektu i wpisz:

npm install nodemon --save-dev

lub krócej:

npm install nodemon -D

Ta komenda pobierze pakiet Nodemon i zapisze go w sekcji devDependencies w Twoim pliku package.json.

(Alternatywnie można zainstalować Nodemon globalnie (npm install -g nodemon), ale instalacja lokalna jako devDependency jest zalecaną praktyką, ponieważ zapewnia, że każdy pracujący nad projektem używa tej samej wersji narzędzia).

Jak używać Nodemon?

Najprostszym sposobem jest uruchomienie go bezpośrednio z terminala, podając jako argument główny plik Twojej aplikacji:

npx nodemon twoj_plik_startowy.js

(Używamy npx, aby uruchomić lokalnie zainstalowaną wersję Nodemon, bez potrzeby instalacji globalnej).

Jednak zalecanym i bardziej praktycznym sposobem jest dodanie skryptu do pliku package.json. Otwórz package.json i w sekcji "scripts" dodaj nowy wpis, np. "dev":

{
  "name": "moj-projekt",
  "version": "1.0.0",
  // ... inne pola ...
  "scripts": {
    "start": "node index.js", // Skrypt do uruchomienia na produkcji
    "dev": "nodemon index.js", // Skrypt do uruchomienia w trybie deweloperskim
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  // ... reszta pliku ...
  "devDependencies": {
    "nodemon": "^2.0.20" // Upewnij się, że nodemon jest tutaj
  }
}

(Zastąp index.js nazwą swojego głównego pliku serwera, np. server.js, app.js).

Teraz, aby uruchomić aplikację z Nodemonem, wystarczy wpisać w terminalu:

npm run dev

Nodemon uruchomi Twoją aplikację (index.js w tym przykładzie) i będzie nasłuchiwał zmian w plikach .js, .mjs, .cjs, .json w bieżącym katalogu i podkatalogach. Po każdej zapisanej zmianie zobaczysz w terminalu komunikat o restarcie aplikacji.

Podsumowanie

Nodemon to proste, ale niezwykle użyteczne narzędzie, które powinno znaleźć się w arsenale każdego programisty Node.js. Automatyzując proces restartowania aplikacji podczas developmentu, oszczędza czas, zwiększa produktywność i sprawia, że praca staje się przyjemniejsza. Integracja z NPM scripts czyni jego użycie trywialnie prostym.

Chcesz poznać więcej narzędzi i technik usprawniających pracę z Node.js? Chcesz zbudować solidne fundamenty programowania backendowego?

Nasz kurs to doskonałe miejsce, aby zgłębić tajniki Node.js, nauczyć się najlepszych praktyk i poznać narzędzia takie jak Nodemon w praktycznym zastosowaniu:

🚀 JavaScript dla programistów: Node.js od podstaw 🚀

Przyspiesz swój rozwój i twórz aplikacje Node.js efektywniej niż kiedykolwiek wcześniej!