html - Skillnaden mellan tsconfig.json och tsconfig.app.json-filerna i Angular


Jag är nybörjare på Angular. Jag använde angular-cli för att lära mig om Angular och jag hittade filerna tsconfig.json och tsconfig.app.json. Båda dessa är relaterade till TypeScript och jag tyckte att den här länken var användbar.

Men varför har två sådana filer använts? Varför kan inte konfigurationerna i dessa två filer kombineras i en fil? Snälla hjälp mig att lista ut detta.

Svar #1

det finns inget som hindrar dig från att bli av med tsconfig.app.json. det är bara en extra konfigurationsfil som gör det möjligt för dig att justera din konfiguration per app. detta är t.ex. användbart när du har flera appar i samma angular-cli-arbetsyta.

du kan ha rotmappen med tsconfig.json och sedan en undermapp app-a med en tsconfig.app.json-fil och en annan app i undermappen app-b med sin egen tsconfig.app.json, som innehåller en variation av den globala konfigurationen.

skillnaden i konfiguration kan t.ex. vara utmatningskatalogen outDir eller includes eller excludes som används.

Svar #2

Skillnaden är att tsconfig.app.json är en fil som är specifik för Angular-appen, medan tsconfig.json är en mer generell fil som innehåller allmän TypeScript-konfiguration. Det är särskilt användbart när du har ett micro frontends-system, där det finns flera Angular-undermoduler, var och en med sin egen tsconfig.app.json-konfiguration. Men om du vill kan du helt enkelt slå ihop dessa två filer till en, faktiskt har du säkert märkt att tsconfig.app.json innehåller raden:

  "extends": "./tsconfig.json"

vilket betyder att hela appen använder konfigurationen som anges i tsconfig.app.json plus konfigurationen i tsconfig.json

Svar #3

Vill bara lägga till en punkt till.

Det verkar som att tsconfig.app.json (appen specifik) kommer att åsidosätta tsconfig.json (global).

Mitt problem var med typdeklarationerna från node som inte fanns inom räckvidden för mitt Angular-projekt och jag fick kompileringsfel som sa att Buffer inte hittades.

Jag lade först till typdeklarationen i tsconfig.json och trodde att det skulle gälla i varje app. Men jag var tvungen att lägga till den i min app-specifika tsconfig.app.json fil för att det skulle gälla i min app.

Relaterade artiklar