$ npm install @forbeslindesay/tsconfigForbes Lindesay's tsconfig, tslint, prettier etc. configs. These shared configs are used to set up our TypeScript projects.
To use my tsconfig as your default config. Install typescript via:
yarn add -D @forbeslindesay/tsconfig typescript
and add the following tsconfig.json in your project's root directory:
{
"extends": "@forbeslindesay/tsconfig",
"compilerOptions": {
"outDir": "lib"
},
"include": ["src"]
}
In package.json add:
{
...
"scripts": {
...
"build": "tsc"
...
}
...
}
To use my eslint as your default config. Install eslint via:
yarn add -D \
eslint \
eslint-plugin-import \
@typescript-eslint/eslint-plugin \
@typescript-eslint/parser
and add the following .eslintrc.js in your project's root directory:
module.exports = require('@forbeslindesay/tsconfig/eslint')({
internalRegex: '^@my-name',
});
and add the following .eslintrc-ts.js in your project's root directory:
module.exports = require('@forbeslindesay/tsconfig/eslint-ts')({
internalRegex: '^@my-name',
});
```
In `package.json` add:
```json
{
...
"scripts": {
...
"lint": "eslint --config .eslintrc-ts.js --no-eslintrc --ext .ts,.tsx src",
"lint:fix": "eslint --fix --config .eslintrc-ts.js --no-eslintrc --ext .ts,.tsx src"
...
}
...
}
To use my prettier as your default config. Install prettier via:
yarn add -D @forbeslindesay/tsconfig prettier
and add the following prettier.config.js in your project's root directory:
module.exports = require('@forbeslindesay/tsconfig/prettier');
In package.json add:
{
...
"scripts": {
...
"prettier:write": "prettier --ignore-path .gitignore --write './**/*.{md,json,yaml,js,jsx,ts,tsx}'",
"prettier:check": "prettier --ignore-path .gitignore --list-different './**/*.{md,json,yaml,js,jsx,ts,tsx}'",
...
}
...
}
We recommend using husky with lint staged. To do this, run:
yarn add -D @forbeslindesay/tsconfig prettier husky lint-staged
and add the following to package.json. This will run prettier on just files that have changed.
{
...
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"*.{md,json,yaml,js,jsx,ts,tsx}": [
"prettier --write",
"git add"
]
}
...
}
MIT