Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/srbrahma/eslint-config-gev
My curated ESLint rules
https://github.com/srbrahma/eslint-config-gev
eslint javascript lint typescript
Last synced: 19 days ago
JSON representation
My curated ESLint rules
- Host: GitHub
- URL: https://github.com/srbrahma/eslint-config-gev
- Owner: SrBrahma
- License: mit
- Created: 2020-12-01T16:55:29.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-05-26T17:28:12.000Z (6 months ago)
- Last Synced: 2024-10-09T09:44:17.247Z (30 days ago)
- Topics: eslint, javascript, lint, typescript
- Language: JavaScript
- Homepage:
- Size: 749 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[![npm](https://img.shields.io/npm/v/eslint-config-gev)](https://www.npmjs.com/package/eslint-config-gev)
[![npm](https://img.shields.io/npm/dw/eslint-config-gev)](https://www.npmjs.com/package/eslint-config-gev)# eslint-config-gev
Curated ESLint configs that I've been improving over the years. All my projects use this.
Since v4, **this should be used together with Biome**. Internally it uses my other package, the [eslint-config-biome](https://github.com/SrBrahma/eslint-config-biome). If you want to stay without Biome, use v3 together with Prettier (I recommend [prettier-config-gev](https://github.com/SrBrahma/prettier-config-gev))
## 💿 Install:
### Automatically
Run `npx eslint-config-gev `, being flavor one of the following: `ts, next, react, react-native, js`. This list and further options can be seen by running `npx eslint-config-gev --help`.
This command adds the required package to your package.json and sets up the `.eslintrc.cjs`.
### Manually
```bash
npm i -D eslint-config-gev
```- Add the following to the top of your .eslintrc.js:
```js
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-patch/modern-module-resolution');
```With it, you won't need to install `eslint` and all the plugins we use!
## Do one of the following
### Typescript
- Add `'eslint-config-gev'` _(or `'eslint-config-gev/ts'`)_ to the `extends: [...]` field in your eslintrc.
.eslintrc.js example
```js
// https://github.com/SrBrahma/eslint-config-gev
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-patch/modern-module-resolution');module.exports = {
root: true,
env: {
es2021: true,
node: true,
},
extends: ['eslint-config-gev/js'],
overrides: [
{
files: ['*.ts'],
extends: ['eslint-config-gev/ts'],
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
ecmaVersion: 12,
sourceType: 'module',
},
},
],
ignorePatterns: ['/lib/**/*', '/dist/**/*'],
rules: {},
};
```
### Javascript
- Add `'eslint-config-gev/js'` to the `extends: [...]` field in your eslintrc.
.eslintrc.js example
```js
// https://github.com/SrBrahma/eslint-config-gev
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-patch/modern-module-resolution');
module.exports = {
root: true,
env: {
es2021: true,
node: true,
},
extends: ['eslint-config-gev/js'],
ignorePatterns: [],
rules: {},
};
```
### React
#### Typescript
- Add `'eslint-config-gev/react'` to the `extends: [...]` field in your eslintrc.
.eslintrc.js example
```js
// https://github.com/SrBrahma/eslint-config-gev
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-patch/modern-module-resolution');module.exports = {
root: true,
env: {
es2021: true,
node: true,
},
extends: ['eslint-config-gev/react-js'],
overrides: [
{
files: ['*.ts', '*.tsx'],
extends: ['eslint-config-gev/react'],
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
ecmaVersion: 12,
sourceType: 'module',
ecmaFeatures: {
jsx: true,
},
},
},
],
ignorePatterns: ['/lib/**/*', '/dist/**/*'],
rules: {},
};
```#### Javascript
- Add `'eslint-config-gev/react-js'` to the `extends: [...]` field in your eslintrc.
.eslintrc.js example
```js
// https://github.com/SrBrahma/eslint-config-gev
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-patch/modern-module-resolution');module.exports = {
root: true,
env: {
es2021: true,
node: true,
},
extends: ['eslint-config-gev/react-js'],
ignorePatterns: ['/lib/**/*', '/dist/**/*'],
rules: {},
};
```
### React Native
#### Typescript
- Add `'eslint-config-gev/react-native'` to the `extends: [...]` field in your eslintrc.
.eslintrc.js example
```js
// https://github.com/SrBrahma/eslint-config-gev
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-patch/modern-module-resolution');module.exports = {
root: true,
env: {
es2021: true,
node: true,
'react-native/react-native': true, // *1
},
extends: ['eslint-config-gev/react-native-js'],
overrides: [
{
files: ['*.ts', '*.tsx'],
extends: ['eslint-config-gev/react-native'],
parser: '@typescript-eslint/parser',
parserOptions: {
tsconfigRootDir: __dirname,
project: ['./tsconfig.json'],
ecmaVersion: 12,
sourceType: 'module',
ecmaFeatures: {
// *1
jsx: true,
},
},
},
],
rules: {},
};// [*1]: https://github.com/Intellicode/eslint-plugin-react-native#configuration
```
#### Javascript
- Add `'eslint-config-gev/react-native-js'` to the `extends: [...]` field in your eslintrc.
.eslintrc.js example
```js
// https://github.com/SrBrahma/eslint-config-gev
// This is a workaround for https://github.com/eslint/eslint/issues/3458
require('@rushstack/eslint-patch/modern-module-resolution');module.exports = {
root: true,
env: {
es2021: true,
node: true,
'react-native/react-native': true, // *1
},
extends: ['eslint-config-gev/react-native-js'],
rules: {},
};// [*1]: https://github.com/Intellicode/eslint-plugin-react-native#configuration
```
## 📰 [Changelog](./CHANGELOG.md)