typescript - Vad är skillnaden mellan `tsc --build --clean` och `rm -rf *.js`?


Jag har en snabb fråga om tsc-kommandot som används med argumenten --build --clean, vilket jag förstår används för att rensa/ta bort de .js-filer som tidigare genererats av Transpilatorn (tsc).

Vad är specialiteten eller betydelsen av detta kommando? Om jag någonsin behöver ta bort alla .js-filer kan jag enkelt göra det med rm -rf *.js eller del *.js i katalogen.

Kan någon upplysa mig om de saknade delarna, om det finns några?

Svar #1

Skillnaden är att rm glatt tar bort alla filer, även om de inte genererades genom att transpilera TypeScript.

OBS!

tsc --build --clean kommer bara att ta bort .js-filer om det finns en motsvarande .ts-fil som de skulle ha genererats från. Detta innebär att om du byter namn på .ts-filer, tar bort .ts-filer, eller skapar nya .ts-filer, och sedan kör tsc --build --clean, kommer gamla .js-filer som tidigare hade motsvarande .ts-filer inte längre att tas bort.

Om du verkligen vill städa upp innan en build, särskilt när mängden .ts-filer har ändrats, bör du istället radera din output-mapp på ett annat sätt. Till exempel rm -rf dist/ i ett unix-skal, eller rm -r -fo dist/ i Windows PowerShell. Eller, eftersom du troligen använder Node.js om du använder TypeScript, använd ett plattformsoberoende paket som rimraf för att radera din output-mapp.

Svar #2

Skillnaden är att --clean i allmänhet är meningslöst. Om du någonsin har bytt namn på, flyttat eller tagit bort en källfil, kommer clean inte att rensa den transpilerade utdata.

Relaterade artiklar