This repository was archived by the owner on Aug 22, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 36
This repository was archived by the owner on Aug 22, 2023. It is now read-only.
tsconfig "extends" not used #176
Copy link
Copy link
Open
Description
Thanks for this project! It's been really useful to me. One thing I noticed is that it looks like the tsconfig.json is parsed here:
Lines 37 to 40 in 25ea412
| const tsconfig = typescript.parseConfigFileTextToJson( | |
| tsconfigPath, | |
| fs.readFileSync(tsconfigPath, 'utf8'), | |
| ).config |
and used in a few places, including here:
Lines 73 to 77 in 25ea412
| compilerOptions: { | |
| esModuleInterop: tsconfig.compilerOptions.esModuleInterop, | |
| target: tsconfig.compilerOptions.target || 'es2017', | |
| experimentalDecorators: tsconfig.compilerOptions.experimentalDecorators || false, | |
| emitDecoratorMetadata: tsconfig.compilerOptions.emitDecoratorMetadata || false, |
However, if you have your oclif tsconfig.json extend another tsconfig.json (e.g. in a monorepo setup) like this:
tsconfig.json
{
"compilerOptions": {
"target": "es2016",
"esModuleInterop": true,
},
}packages/my-oclif-project/tsconfig.json
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"declaration": true,
"importHelpers": true,
"module": "commonjs",
"outDir": "lib",
"rootDir": "src",
"strict": true,
"noEmit": false,
},
"include": ["src"],
}the "extends" is never followed, so the tsconfig does not inherit e.g. "target" and "esModuleInterop" from the base config. (About extending base configs: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html#tsconfig-bases)
mshwery and emoyly
Metadata
Metadata
Assignees
Labels
No labels