Ce face util.styleText
styleText(format, text) întoarce textul înconjurat de codurile ANSI care îl colorează în terminal. format este un nume ("red", "green", "bold", "underline", "bgYellow", "gray") sau un tablou de nume combinate. Lista completă este în util.inspect.colors.
Implicit, funcția verifică dacă ieșirea este un terminal care afișează culori (opțiunea validateStream: true, cu stream implicit process.stdout) și ține cont de variabilele NO_COLOR, NODE_DISABLE_COLORS și FORCE_COLOR. Dacă ieșirea merge într-un fișier sau printr-un pipe, primești textul simplu, fără coduri.
Cu validateStream: false codurile sunt adăugate mereu. Din Node.js 26.1 sunt acceptate și culori hexazecimale ("#ff8800").
Parametri
| Parametru | Descriere |
|---|---|
format |
Un format sau un tablou de formate. |
text |
Textul de formatat. |
opțiuni.validateStream |
Implicit true: adaugă culori doar dacă stream le acceptă. |
opțiuni.stream |
Stream-ul verificat (implicit process.stdout). |
Ce returnează
Un șir, cu sau fără coduri ANSI.
Exemple
Exemplul 1: Mesaje colorate în terminal
Rulat într-un terminal, rândurile apar colorate. Aici ieșirea este capturată (nu este terminal), deci textul vine fără coduri.
import { styleText } from "node:util";
console.log(styleText("green", "✔ Comanda 1024 a fost trimisă"));
console.log(styleText(["bold", "red"], "✖ Stoc epuizat: mere"));
console.log(styleText("gray", "Ultima sincronizare: Iași"));
Rezultat
✔ Comanda 1024 a fost trimisă
✖ Stoc epuizat: mere
Ultima sincronizare: Iași
Exemplul 2: Codurile ANSI din spatele culorilor
Cu validateStream: false codurile sunt adăugate mereu. JSON.stringify le face vizibile.
import { styleText } from "node:util";
const text = styleText(["bold", "red"], "Eroare", { validateStream: false });
console.log(JSON.stringify(text));
console.log(text.length, "caractere pentru 6 litere");
Rezultat
"\u001b[1m\u001b[31mEroare\u001b[39m\u001b[22m"
25 caractere pentru 6 litere
Greșeli frecvente
- Construiești coduri ANSI de mână (
"\x1b[31m") și uiți să le închizi: tot textul de după rămâne roșu.styleTextpune și codul de închidere. - Scrii culori în jurnale salvate în fișiere cu
validateStream: false: fișierul se umple de coduri. Lasă valoarea implicită. - Dai un nume greșit (
"verde","grey"în versiuni vechi): primeștiERR_INVALID_ARG_VALUE. Verifică lista înutil.inspect.colors.
Comenzi înrudite
util.inspect / util.format: Transformă orice valoare în text lizibil, ca console.log (inspect), și formatează șiruri cu %s, %d, %o (format).util.parseArgs: Citește opțiunile din linia de comandă (–port 8080, -v, –fara-culori) fără pachete ca yargs sau commander.process.env: Obiectul cu variabilele de mediu ale procesului: configurări ca PORT, NODE_ENV sau chei de API, mereu ca șiruri.