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
outFileca bundler pentru o aplicație modernă. Nu rezolvă pachetele dinnode_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.