typescript - Specifika tsconfig.json-regler inuti mapp
Hur kan jag använda en inre config.json i mitt Typescript-projekt?
För tydlighet:
Jag har en rot /config.json som följer:
{
"compilerOptions": {
"module": "commonjs",
"target": "es2017",
"inlineSourceMap": true,
"outDir": "./app/",
"lib": [
"es6"
],
"experimentalDecorators": true,
"emitDecoratorMetadata": true,
"moduleResolution": "node",
"baseUrl": "./",
"noImplicitAny": true,
"skipLibCheck": true,
"paths": {
"*": [
"types/*"
]
}
},
"include": [
"./src/**/*.ts"
]
}
Jag vill ha en /innerFolder/config.json med följande:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"noImplicitReturns": true,
"noUnusedParameters": true,
"noUnusedLocals": true,
"strictNullChecks": true,
}
}
Jag gör det eftersom jag vill göra en refaktorering på teamets kod, men den är stor och jag vill inte ändra alla mina filer på en gång.
Jag vill göra det mapp för mapp och "låsa" mappen med ändringarna.
Enligt dokumentationen letar kompilatorn upp till en överordnad tsconfig.json, men inte ner för en specifik tsconfig.json.
Finns det ett sätt att uppnå det?
Svar #1
TypeScript 2.1 lade till konfigurationsarv och detta bör nu fungera på det sätt du använder det.
Svar #2
Inom ett enda projekt finns det inget sätt att tillämpa olika kompilatorinställningar på olika filer. Om dina mappar följer en enkel beroendestruktur kan du kanske använda flera projekt med projektreferenser. Annars kan du skriva ett skript som kör tsc på hela projektet två gånger (en gång med de striktare inställningarna och en gång med de mer generösa inställningarna) och kombinerar felen från första körningen på innerFolder och felen från andra körningen på alla andra filer; se detta svar för lite inspiration om hur man filtrerar fel efter filnamn. Detta hjälper inte med din IDE; där måste du kanske bara använda de mer generösa inställningarna.