0.9.0 • Published 8 months ago

@git-validator/tsconfig v0.9.0

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

@git-validator/tsconfig

Strict shared tsconfig out-of-box.

npm.io npm.io npm.io npm.io PRs Welcome

Feature

  • The best practice about tsconfig.json.
  • Strictest.
  • One-line of tsconfig.
  • Support ESM and CommonJS.
  • 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 nearest tsconfig.json as the TypeScript config for the opening ts file. If there is only one tsconfig.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 nearest tsconfig.build.json rather than tsconfig.json, we don't need a tsconfig.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

0.9.0

8 months ago

0.9.0-beta.0

8 months ago

0.8.0

8 months ago

0.7.3

9 months ago

0.7.2

9 months ago

0.7.1

10 months ago

0.6.0-beta.0

11 months ago

0.5.0

12 months ago

0.7.0

10 months ago

0.6.1

11 months ago

0.6.0

11 months ago

0.5.1

12 months ago

0.4.7

1 year ago

0.4.6

1 year ago

0.4.5

1 year ago

0.4.4

1 year ago

0.4.3

1 year ago

0.4.2-beta.0

1 year ago

0.4.2

1 year ago

0.4.1

1 year ago

0.4.0

1 year ago

0.3.0

1 year ago

0.2.0

1 year ago

0.1.14

1 year ago

0.1.13

1 year ago

0.1.12

1 year ago

0.1.11

1 year ago

0.1.10

2 years ago

0.1.9

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.0

2 years ago