2.0.2 • Published 1 year ago
@waldronmatt/tsconfig-config v2.0.2
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