typescript - relative stier for outDir og rootDir i en base tsconfig.json
Jeg har en basis tsconfig.json hvor jeg vil ha alle konsekvente egenskaper for alle prosjekter som refererer til den.
Jeg håpet jeg kunne vedvarende sette outDir, rootDir, include og excludes her:
{
"compilerOptions": {
"declaration": true,
"downlevelIteration": true,
"module": "commonjs",
"moduleResolution": "node",
"noUnusedLocals": true,
"outDir": "./dist",
"removeComments": false,
"rootDir": "./src",
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"target": "es5"
},
"include": [
"src/**/*.ts",
"src/**/*.tsx"
],
"exclude": [
"./dist",
"src/**/*.test.ts",
"src/**/*.test.tsx"
]
}
Dessverre
{
"extends": "../frontend-common/typescript/tsconfig.base.json",
}
Men når jeg prøver å kompilere et prosjekt, får jeg denne feilen:
feil TS6059: Fil 'blah.ts' er ikke under 'rootDir' '/path/to/tsconfig.base.json/dir'. 'rootDir' forventes å inneholde alle kildefiler.
Filveier i tsconfig.base.json er sannsynligvis, ikke overraskende, relative til filens plassering.
Er det noen måte å gjøre dem relative til tsconfig.json som refererer til basis tsconfig.base.json?
Det er irriterende å ha dette i hver tsconfig.json
"include": [
"src/**/*.ts",
"src/**/*.tsx"
],
"exclude": [
"./dist",
"src/**/*.test.ts",
"src/**/*.test.tsx"
]
Svar #1
Dette har blitt lagt til i TypeScript 5.5
Du kan nå bruke $ {configDir} som plassholder i din tsconfig.base.json:
{
"compilerOptions": {
"outDir": "${configDir}/dist"
}
}
Svar #2
Jeg lette også etter noe lignende, men foreløpig finnes det ingen måte å gjøre det samme på.
Referanseproblem - https://github.com/microsoft/TypeScript/issues/29172
