https://github.com/aboutbits/eslint-config
https://github.com/aboutbits/eslint-config
Last synced: about 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/aboutbits/eslint-config
- Owner: aboutbits
- License: mit
- Created: 2023-07-14T08:27:29.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-20T10:51:09.000Z (about 1 year ago)
- Last Synced: 2025-03-28T07:17:04.920Z (about 1 year ago)
- Language: JavaScript
- Homepage:
- Size: 514 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
# @aboutbits/eslint-config
[](https://badge.fury.io/js/%40aboutbits%2Feslint-config)
[](https://github.com/aboutbits/eslint-config/blob/main/license.md)
AboutBit's [ESLint](https://eslint.org/) config presets
## Table of content
- [Usage](#usage)
- [TypeScript](#typescript)
- [TypeScript + React](#typescript--react)
- [TypeScript + Next.js](#typescript--nextjs)
- [FormatJS](#formatjs)
- [Combining presets](#combining-presets)
- [Overriding Rules](#overriding-rules)
- [Build & Publish](#build--publish)
- [About](#about)
## Usage
Install the package:
```sh
npm i -D @aboutbits/eslint-config
```
We recommend linting by running `eslint` without `--ext` option. What files are to be linted should be specified inside the ESLint config and the TypeScript config.
All files included (or not ignored) by the ESLint config (`.eslintrc.json`) must be included by the TypeScript config (`tsconfig.json`).
For example, if this is your `.eslintrc.json`:
```json
{
// ...remaining config
"ignorePatterns": ["node_modules", "dist"]
}
```
You may include the following files inside your `tsconfig.json`:
```json
{
// ...remaining config
"exclude": ["node_modules", "dist"],
"include": ["**/*.ts", "**/*.tsx"]
}
```
Should you have files that you want to be linted, but not inside your `tsconfig.json`, you can create a `tsconfig.eslint.json` file.
Then change `.eslintrc.json` to be:
```json
{
// ...omitted
"parserOptions": {
"project": "./tsconfig.eslint.json"
}
// ...omitted
}
```
### TypeScript
Install the required packages, assuming that you have TypeScript already installed:
```sh
npm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import
```
`.eslintrc.json`
```json
{
"extends": "@aboutbits/eslint-config/ts",
"parserOptions": {
"project": true
}
}
```
### TypeScript + React
Install the required packages, assuming that you have TypeScript already installed:
```sh
npm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-tailwindcss
```
`.eslintrc.json`
```json
{
"extends": "@aboutbits/eslint-config/ts-react",
"parserOptions": {
"project": true
}
}
```
### TypeScript + Next.js
Install the required packages, assuming that you have TypeScript already installed:
```sh
npm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-tailwindcss @next/eslint-plugin-next
```
`.eslintrc.json`
```json
{
"extends": "@aboutbits/eslint-config/ts-next",
"parserOptions": {
"project": true
}
}
```
### FormatJS
Install the required packages, assuming that you have TypeScript already installed:
```sh
npm i -D eslint eslint-plugin-formatjs
```
`.eslintrc.json`
```json
{
"extends": "@aboutbits/eslint-config/formatjs",
"parserOptions": {
"project": true
}
}
```
### Combining presets
Most presets are mutually exclusive, which means that you should not combine them.
However, you may combine the preset `formatjs` with any other preset you like.
The following shows how to combine it with the preset `ts-next`:
Install the required packages, assuming that you have TypeScript already installed:
```sh
npm i -D eslint prettier @typescript-eslint/eslint-plugin eslint-plugin-prettier eslint-plugin-import eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-jsx-a11y eslint-plugin-tailwindcss @next/eslint-plugin-next eslint-plugin-formatjs
```
`.eslintrc.json`
```json
{
"extends": [
"@aboutbits/eslint-config/ts-next",
"@aboutbits/eslint-config/formatjs"
],
"parserOptions": {
"project": true
}
}
```
### Overriding rules
`.eslintrc.json`
```json
{
"extends": "@aboutbits/eslint-config/ts",
"parserOptions": {
"project": true
},
"rules": {
// your rules...
}
}
```
## Publish
To publish the package commit all changes and push them to main. Then run one of the following commands locally:
```sh
npm version patch
npm version minor
npm version major
```
## Information
AboutBits is a company based in South Tyrol, Italy. You can find more information about us
on [our website](https://aboutbits.it).
### Support
For support, please contact [info@aboutbits.it](mailto:info@aboutbits.it).
### Credits
- [All Contributors](../../contributors)
### License
The MIT License (MIT). Please see the [license file](license.md) for more information.