2.0.2 • Published 3 years ago
@waldronmatt/tsconfig-config v2.0.2
Tsconfig Config
My personal shareable tsconfig configuration.
Install
yarn add -D typescript @waldronmatt/tsconfig-configOptionally include types for node:
yarn add -D @types/nodeUsage
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 tslibExtending
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-allpackage.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 buildLicense
MIT