@petbee/tsconfig v2.0.0
@petbee/tsconfig
This is default tsconfig.json that should be used by all Petbee projects.
Install
yarn add -D @petbee/tsconfigUsage
React Project
React Application Project
To start, create a tsconfig.json in the root of your project.
A typical setup where the application sit in [project root]/app folder is as follow:
{
"extends": "@petbee/tsconfig/react/application.json",
"compilerOptions": {
"baseUrl": ".",
"rootDir": ".",
"paths": { "*": ["*", "app/*"] }
},
"include": ["./app/**/*", "./client/**/*", "./server/**/*", "./tests/**/*"]
}React Library Project
Similarly for a react library project. Create a tsconfig.json in the root of your project with a setup below assuming the library code sit in [project root]/src folder.
{
"extends": "@petbee/tsconfig/react/library.json",
"compilerOptions": {
"baseUrl": "./src",
"rootDir": "."
},
"include": ["./src/**/*"]
}Project that run in the browser
A configuration file is provided that included styles setup and a more conservative build target.
{
"extends": "@petbee/tsconfig/react/dom.json",
"compilerOptions": {
"baseUrl": ".",
"rootDir": "."
}
}NestJS Project
To start, create a tsconfig.json in the root of your project.
A typical setup where the application sit in [project root]/app folder is as follow:
{
"extends": "@petbee/tsconfig/nestjs.json",
"compilerOptions": {
"rootDir": "./src"
},
"exclude": ["node_modules", "dist", "tests/**/*", "**/*.spec.ts"]
}NodeJS Project
Node Application Project
To start, create a tsconfig.json in the root of your project.
A typical setup where the application sit in [project root]/src folder is as follow:
{
"extends": "@petbee/tsconfig/node/base.json",
"compilerOptions": {
"baseUrl": "./",
"outDir": "./dist"
}
}Node Library Project
Similarly for a node library project. Create a tsconfig.json in the root of your project with a setup below assuming the library code sit in [project root]/src folder.
{
"extends": "@petbee/tsconfig/node/library.json",
"compilerOptions": {
"baseUrl": "./src",
"rootDir": "."
},
"include": ["./src/**/*"]
}All Other Project
A base configuration file is also provided if the above does not fit your need.
{
"extends": "@petbee/tsconfig/base.json",
"compilerOptions": {
"baseUrl": ".",
"rootDir": "."
}
}Common Got Ya
Type Checking does not honour skipLibCheck: true setting
There are times when the type failure occur inside of a library your project is consuming, and having skipLibCheck: true does not resolved it. In this scenario, add an exclude option to your tsconfig.json.
eg.
{
"extends": "@petbee/tsconfig/base.json",
"compilerOptions": {
"baseUrl": ".",
"rootDir": ".",
"exclude": ["./node_modules/**/*"]
}
}