@git-validator/tsconfig
v0.9.0
Published
Strict shared tsconfig out-of-box.
Downloads
217
Maintainers
Readme
@git-validator/tsconfig
Strict shared tsconfig out-of-box.
Feature
- The best practice about
tsconfig.json
. - Strictest.
- One-line of tsconfig.
- Support
ESM
andCommonJS
. - Support FE (eg: React) & BE (eg: Nest) project.
Usage
Install
npm i @git-validator/tsconfig -D
For node project, you may need to install @types/node
additionally.
npm i @types/node -D
For frontend project (like React), you may need to install @types/web
additionally.
npm i @types/web -D
Config tsconfig.json
{
"extends": "@git-validator/tsconfig"
}
Best Practices
Here are the best practices if you are using this package.
For polyrepo
├── src
│ └── index.ts
├── test
│ └── index.spec.ts
├── package.json
├── tsconfig.build.json
└── tsconfig.json
tsconfig.json
{
"extends": "@git-validator/tsconfig"
}
tsconfig.build.json
{
"extends": "./tsconfig",
"include": ["src"],
"exclude": ["**/*.spec.ts", "**/*.test.ts"]
}
For monorepo
├── apps
│ ├── app1
│ │ ├── src
│ │ │ └── main.ts
│ │ ├── test
│ │ │ └── main.spec.ts
│ │ ├── package.json
│ │ ├── tsconfig.build.json
│ │ └── tsconfig.json
│ └── app2
│ ├── src
│ │ └── main.ts
│ ├── test
│ │ └── main.spec.ts
│ ├── package.json
│ ├── tsconfig.build.json
│ └── tsconfig.json
├── package.json
└── tsconfig.json
tsconfig.json in the root of project
{
"extends": "@git-validator/tsconfig"
}
tsconfig.json in each app
{
"extends": "../../tsconfig"
}
tsconfig.build.json in each app
{
"extends": "./tsconfig",
"include": ["src"],
"exclude": ["**/*.spec.ts", "**/*.test.ts"]
}
Tips: Why do we still need a
tsconfig.json
in each app? In short, for the DX. VSCode usually use the nearesttsconfig.json
as the TypeScript config for the opening ts file. If there is only onetsconfig.json
in the root, the declarations in one app will affect the others. Thus, VSCode will perform wrong type hints. If VSCode smart enough to use nearesttsconfig.build.json
rather thantsconfig.json
, we don't need atsconfig.json
in each app.
Commands
After installing @git-validator/tsconfig
, you can run npx tsconfig init
command to generate a tsconfig.json
file. Run npx tsconfig -h
for all commands details:
Usage: tsconfig [options] [command]
Options:
-h, --help display help for command
Commands:
init [options] init a tsconfig file
diff [options] show differences between recommended tsconfig and current project tsconfig
help [command] display help for command
License
MIT