2.0.2 • Published 1 year ago

@waldronmatt/tsconfig-config v2.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

Tsconfig Config

My personal shareable tsconfig configuration.

Install

yarn add -D typescript @waldronmatt/tsconfig-config

Optionally include types for node:

yarn add -D @types/node

Usage

tsconfig.json

Base

{
  "extends": "@waldronmatt/tsconfig-config/base.json"
}

Lib

Useful defaults for code publishing and distribution:

{
  "extends": "@waldronmatt/tsconfig-config/lib.json"
}

Add the tslib package:

yarn add -D tslib

Extending

A basic configuration for projects:

tsconfig.json

{
  "extends": "@waldronmatt/tsconfig-config/base.json",
  "compilerOptions": {
    // output to dist directory
    "outDir": "dist"
  },
  // include source and test files
  "include": ["src/**/*", "__tests__/**/*"],
  // ignore node_modules and dist directories
  "exclude": ["node_modules", "dist"]
}

Recipes

Lint your source and configuration/dot files (eslintrc.js, ect.) that shouldn't be part of your existing tsconfig file:

tsconfig.eslint.json

{
  "extends": "./tsconfig.json",
  "include": [".*.js", "*.js", "src/*"],
  "compilerOptions": {
    "noEmit": true,
    "allowJs": true
  }
}

.eslintrc.js

module.exports = {
  root: true,
  extends: ['my-config'],
  plugins: ['import'],
  parserOptions: {
    project: ['tsconfig.eslint.json'],
    tsconfigRootDir: __dirname,
  },
  rules: {
    'import/extensions': 'off',
  },
  ignorePatterns: ['dist/**'],
};

Exclude test and configuration/dot files from compilation, but still have them type checked:

tsconfig.build.json

{
  "extends": "./tsconfig.json",
  "exclude": [".*.js", "*.js", "src/*.spec.ts"]
}

package.json

"scripts": {
  "compile": "tsc --project tsconfig.build.json"
},

Clean up bundle and artifacts with your build script:

Install rimraf and npm-run-all:

yarn add -D rimraf npm-run-all

package.json

"scripts": {
  "clean": "rimraf dist coverage tsconfig.build.tsbuildinfo",
  "compile": "tsc --project tsconfig.build.json",
  "build": "run-s clean compile",
},

And then you can run:

yarn build

License

MIT

2.0.2

1 year ago

2.0.1

1 year ago

1.1.3

2 years ago

2.0.0

1 year ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago