NodeJS: Wykrycie automatycznej zmiany kodu

Opublikowano: 20.11.2021 - tagi: NodeJS JavaScript TypeScript Konfiguracja Komenda

We frontendzie automatyczne przekompilowanie kodu po jego zmianie to standard. Można to samo zrobić w NodeJS.

Podam dwie wersje dla "zwykłego" JavaScript i dla TypeScript.

Wersja dla JavaScript

Instalujemy nodemon

Nodemon to narzędzie, które zrestartuje Twoją aplikację napisaną pod NodeJS od razu gdy kod się zmieni.

Instalujemy:

npm i --save-dev nodemon

Konfiguracja

W pliku package.json w scripts podpinamy nodemon:

{
   ...
   "scripts": {
      "serve": "nodemon index.js"
   }
}

Wystarczy teraz tylko odpalić skrypt serve:

npm run serve

i zmienić kod, a skrypt sam się przełąduje (i oczywiście zapisać zmiany pliku!).

Wersja dla TypeScript

Jeśli nie podpinałeś TypeScript'a z NodeJS to tutaj dowiesz się jak to zrobić.

Wersja dla TypeScript jest bardzo podobna do poprzedniej:

Instalacja

Oprócz nodemon zainstalujemy także: concurrently. To narzędzie służy do uruchomienia kilku komend naraz. Po co to nam się dokładnie przyda, opiszę za chwilę.

npm i --save-dev concurrently nodemon

Konfiguracja

W pliku package.json w scripts podpinamy:

{
   ...
   "scripts": {
      "serve": "concurrently \"tsc --watch\" \"nodemon -q dist/index.js\""
   }
}

Pod serve wywołujemy dwa polecenia. Żeby, to zrobić posługujemy się concurrently. Składnia jest prosta po słowie: concurrently podajemy w nawiasach: "" dane polecenie, które chcemy wywołać. W tym przypadku jest, to: tsc --watch — będzie nasłuchiwać ewentualnych zmian, w kodzie TypeScript. A drugie polecenie po prostu zrestartuje skrypt, gdy zmiany w TypeScript zostaną przekompilowane do docelowego pliku JavaScript.