process.cwd / process.chdir în Node.js

Rulare și linie de comandă Toate versiunile Node.js

Directorul curent de lucru al procesului, față de care se rezolvă căile relative. chdir îl schimbă.

Sintaxă
process.cwd()
process.chdir(director)

Ce face process.cwd / process.chdir

process.cwd() întoarce directorul din care a fost pornit node (cel în care erai în terminal), nu directorul în care se află scriptul. Toate căile relative din fs (readFile("date.json")) se rezolvă față de acest director.

process.chdir(dir) schimbă directorul curent al procesului. Aruncă o eroare dacă directorul nu există. Nu este disponibil în firele de execuție (worker_threads).

Dacă vrei un fișier aflat lângă script, indiferent de unde este pornit, folosește import.meta.dirname, nu process.cwd().

Ce returnează

cwd(): calea absolută, ca șir. chdir(): undefined.

Exemple

Exemplul 1: Căi relative față de directorul curent

Exemplul creează un subdirector, intră în el și arată unde ajunge o cale relativă. Afișăm căile relativ la directorul de pornire, ca să nu depindă de calculator.

import { mkdirSync, writeFileSync, readFileSync } from "node:fs";
import path from "node:path";

const start = process.cwd();
mkdirSync("rapoarte/2026", { recursive: true });

process.chdir("rapoarte/2026");
console.log("Acum sunt în:", path.relative(start, process.cwd()));

writeFileSync("iasi.txt", "Vânzări Iași: 1200 lei");
console.log(readFileSync(path.join(start, "rapoarte/2026/iasi.txt"), "utf8"));

Rezultat

Acum sunt în: rapoarte/2026
Vânzări Iași: 1200 lei

Exemplul 2: Director inexistent

try {
  process.chdir("nu-exista");
} catch (eroare) {
  console.log(eroare.code);
}

Rezultat

ENOENT

Greșeli frecvente

  • Citești readFile("config.json") într-un script pornit din alt director (de exemplu dintr-un cron sau din npm run în alt pachet): fișierul nu este găsit. Construiește calea cu path.join(import.meta.dirname, "config.json").
  • Folosești process.chdir într-o aplicație cu mai multe părți: schimbarea afectează tot procesul și toate căile relative. Preferă căi absolute.

Comenzi înrudite

  • import.meta.dirname / filename: Calea directorului și a fișierului modulului curent: înlocuitorii pentru __dirname și __filename în module ES.
  • path.resolve / path.relative: Transformă o cale în cale absolută (resolve), calculează drumul dintre două căi (relative) și verifică sau curăță căi.
  • path.join: Lipește mai multe bucăți într-o singură cale, cu separatorul corect pentru sistemul de operare, și curăță ./ și ../.
  • fs.readFile: Citește tot conținutul unui fișier: ca text dacă dai codificarea („utf8”), altfel ca Buffer cu octeții bruți.