Ce face outDir
Fără outDir, tsc scrie fiecare .js lângă fișierul .ts din care provine, amestecând sursele cu rezultatul. Cu outDir, toate fișierele generate (.js, .d.ts, .map) ajung într-un director separat, de obicei dist sau build, ușor de șters și de ignorat în git.
Structura de subdirectoare se păstrează, pornind de la rootDir (scrisă sau calculată). Nu are valoare implicită. Pune directorul și în .gitignore; tsc îl exclude automat din include.
Parametri
| Parametru | Descriere |
|---|---|
"cale" |
Directorul de ieșire, relativ la tsconfig.json. |
Exemple
Exemplul 1: Cu și fără outDir
Cu outDir, fișierele ajung în dist/. Fără (--outDir null), apar lângă surse, în src/.
// tsconfig.json
{
"compilerOptions": {
"module": "nodenext",
"target": "es2022",
"outDir": "dist"
}
}
// src/index.ts
import { a } from "./util/a.js";
console.log(a);
// src/util/a.ts
export const a = 1;
Rezultat (tsc 5.9)
$ npx tsc && find . -name '*.js' | sort
./dist/index.js
./dist/util/a.js
$ rm -rf dist && npx tsc --outDir null && find . -name '*.js' | sort
./src/index.js
./src/util/a.js
Greșeli frecvente
- Să ștergi un fișier
.tsși să uiți că vechiul.jsrămâne îndist. Golește directorul înainte de un build curat. - Să pornești
allowJsfărăoutDir: tsc ar suprascrie fișierele.jssursă (TS5055).
Comenzi înrudite
rootDir: Spune care director este rădăcina surselor; structura de sub el se păstrează în outDir.declarationDir: Directorul în care se scriu fișierele .d.ts, separat de outDir unde ajunge JavaScript-ul.outFile: Pune tot JavaScript-ul generat într-un singur fișier; merge doar cu scripturi globale sau cu module amd/system.allowJs: Permite fișiere .js în proiectul TypeScript: pot fi importate din .ts, sunt copiate în outDir și au tipuri deduse.