outFile în TypeScript

Pune tot JavaScript-ul generat într-un singur fișier; merge doar cu scripturi globale sau cu module amd/system.

Sintaxă
"compilerOptions": { "outFile": "./dist/tot.js" }

Ce face outFile

Cu outFile, tsc concatenează toate fișierele într-unul singur, în ordinea dată de files și de referințele dintre ele. Funcționează pentru scripturi fără import/export și pentru modulele în formatele vechi amd și system; cu module ES sau CommonJS dă eroarea TS6082. Cu declaration, produce și un singur .d.ts.

Este o opțiune moștenită din vremea când nu existau bundlere. Astăzi, pentru un singur fișier, se folosește un bundler (esbuild, Rollup, Vite). Nu are valoare implicită. Vechea opțiune out a fost scoasă (TS5102) în favoarea ei.

Parametri

Parametru Descriere
"cale" Fișierul unic de ieșire.

Exemple

Exemplul 1: Două scripturi într-un fișier

Fișierele nu au import/export, deci sunt scripturi globale. files dă ordinea.

// tsconfig.json
{
  "compilerOptions": {
    "target": "es2022",
    "outFile": "dist/tot.js"
  },
  "files": ["unu.ts", "doi.ts"]
}

// unu.ts
function salut(nume: string) {
  return `Salut, ${nume}!`;
}

// doi.ts
console.log(salut("Ana"));

Rezultat (tsc 5.9)

$ npx tsc && cat dist/tot.js
function salut(nume) {
    return `Salut, ${nume}!`;
}
console.log(salut("Ana"));

$ node dist/tot.js
Salut, Ana!

Exemplul 2: Cu module ES

Cu "module": "nodenext", fișierele nu pot fi lipite într-unul singur.

// tsconfig.json
{
  "compilerOptions": {
    "module": "nodenext",
    "target": "es2022",
    "outFile": "dist/tot.js"
  }
}

Rezultat (tsc 5.9)

$ npx tsc
tsconfig.json(3,5): error TS6082: Only 'amd' and 'system' modules are supported alongside --outFile.
tsconfig.json(5,5): error TS6082: Only 'amd' and 'system' modules are supported alongside --outFile.

Greșeli frecvente

  • Să folosești outFile ca bundler pentru o aplicație modernă. Nu rezolvă pachetele din node_modules și nu merge cu module ES.

Comenzi înrudite

  • outDir: Directorul în care tsc scrie fișierele generate, cu aceeași structură de subdirectoare ca sursele.
  • module: Alege formatul de module din JavaScript-ul generat (ES modules, CommonJS) și regulile de import pe care le verifică tsc.
  • declaration: Generează lângă fiecare fișier .js un fișier .d.ts cu tipurile lui, ca alte proiecte să-l poată folosi cu tipuri.