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:
|
const tsconfig = typescript.parseConfigFileTextToJson( |
|
tsconfigPath, |
|
fs.readFileSync(tsconfigPath, 'utf8'), |
|
).config |
and used in a few places, including here:
|
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)
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:
config/src/ts-node.ts
Lines 37 to 40 in 25ea412
and used in a few places, including here:
config/src/ts-node.ts
Lines 73 to 77 in 25ea412
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)