The presence of a tsconfig.json
file in a directory indicates that the directory is the root of a TypeScript project. The tsconfig.json
file specifies the root files and the compiler options required to compile the project.
You can check all the compiler options at the official TypeScript site: https://www.typescriptlang.org/tsconfig.
This is the tsconfig.json
file that I normally use in my projects. I’ve always separated them into two files: the tsconfig.common.json
file will contain all the shared compiler options, and the tsconfig.json
file will extend the tsconfig.common.json
file and add some specific options for that project. This is very useful when you work with MonoRepos.
My tsconfig.common.json
file looks like this:
{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"alwaysStrict": true,
"declaration": true,
"declarationMap": true,
"downlevelIteration": true,
"esModuleInterop": true,
"experimentalDecorators": true,
"jsx": "react-jsx",
"lib": ["DOM", "DOM.Iterable", "ESNext"],
"module": "commonjs",
"moduleResolution": "node",
"noEmit": false,
"noFallthroughCasesInSwitch": false,
"noImplicitAny": true,
"noImplicitReturns": true,
"outDir": "dist",
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": true,
"strict": true,
"strictFunctionTypes": true,
"strictNullChecks": true,
"suppressImplicitAnyIndexErrors": false,
"target": "ESNext"
},
"exclude": ["node_modules", "dist", "coverage", ".vscode", "**/__tests__/*"]
}
And my tsconfig.json
looks like this:
{
"extends": "./tsconfig.common.json",
"compilerOptions": {
"baseUrl": "./packages",
"paths": {
"@web-creator/*": ["*/src"]
}
}
}
In Chapter 14, I will explain how to create a MonoRepos architecture.