Ce face node --watch
În modul --watch, Node.js rulează scriptul și apoi urmărește fișierele lui. Când salvezi o modificare, oprește procesul și îl pornește din nou. Este util cât scrii un server sau un script: nu mai apeși Ctrl+C și săgeata sus după fiecare schimbare.
Implicit sunt urmărite fișierul de pornire și toate modulele încărcate cu import sau require. Cu --watch-path alegi tu ce directoare sau fișiere sunt urmărite (atunci modulele importate nu mai sunt urmărite automat). La fiecare repornire ecranul terminalului este golit; --watch-preserve-output păstrează ieșirea anterioară.
Modul este stabil din Node.js 22 și a înlocuit în multe proiecte unelte ca nodemon. Nu poate fi combinat cu -e, --check sau REPL-ul și cere neapărat un fișier. Se oprește cu Ctrl+C.
Parametri
| Parametru | Descriere |
|---|---|
--watch |
Pornește modul de urmărire pentru fișierul dat și modulele lui. |
--watch-path=cale |
Urmărește calea dată (poate apărea de mai multe ori). Dezactivează urmărirea automată a modulelor importate. |
--watch-preserve-output |
Nu golește ecranul la repornire. |
--watch-kill-signal=semnal |
Semnalul trimis procesului la repornire (implicit SIGTERM). Adăugat în 22.18 / 24.4, încă în dezvoltare activă. |
Exemple
Exemplul 1: Repornire la salvare
Pornește scriptul în modul de urmărire, apoi adaugă în salut.mjs linia console.log("Salut din nou!"); și salvează. Mesajele „Completed running” și „Restarting” vin de la Node.js.
node --watch salut.mjs
Ieșire în terminal
Salut, lume!
Completed running 'salut.mjs'. Waiting for file changes before restarting...
Restarting 'salut.mjs'
Salut, lume!
Salut din nou!
Completed running 'salut.mjs'. Waiting for file changes before restarting...
Exemplul 2: Script de dezvoltare în package.json
De obicei modul de urmărire se pune într-un script. Aici sunt urmărite și directorul views (șabloane care nu sunt importate) și fișierul .env.
{
"scripts": {
"dev": "node --watch --watch-path=src --watch-path=views --env-file=.env src/server.mjs",
"start": "node --env-file=.env src/server.mjs"
}
}
Greșeli frecvente
- Folosești
--watch-pathși te miri că modificările din modulele importate nu mai repornesc scriptul: cu--watch-pathsunt urmărite doar căile date de tine. Adaugă și directorul cu sursele. - Pui
--watchîn scriptul de producție (start). Modul de urmărire este pentru dezvoltare; pe server folosește un manager de procese (systemd, pm2, Docker) care repornește aplicația la erori. - Scrii
node salut.mjs --watch: opțiunile lui Node.js se pun înaintea numelui fișierului; ce vine după fișier ajunge înprocess.argv.
Comenzi înrudite
node script.js: Rulează un fișier JavaScript în terminal sau o bucată de cod dată direct în comandă (-e, -p).node --env-file: Încarcă variabilele de mediu dintr-un fișier .env în process.env, fără pachetul dotenv.node --run: Rulează un script din câmpul „scripts” al package.json direct cu Node.js, mai repede decât npm run.npm run: Rulează un script din câmpul „scripts” al package.json, cu node_modules/.bin în PATH și cu scripturile pre/post.fs.watch: Urmărește un fișier sau un director și anunță fiecare schimbare (fișier creat, modificat, redenumit, șters).