Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/atom-community/eslint-config-atomic

A collection of awesome constructive Eslint rules used in Atom community
https://github.com/atom-community/eslint-config-atomic

eslint eslint-config eslint-plugin

Last synced: about 2 months ago
JSON representation

A collection of awesome constructive Eslint rules used in Atom community

Awesome Lists containing this project

README

        

# eslint-config-atomic

This includes the Eslint configuration used in atom-ide-community.

[![CI](https://github.com/atom-community/eslint-config-atomic/actions/workflows/CI.yml/badge.svg)](https://github.com/atom-community/eslint-config-atomic/actions/workflows/CI.yml)

## Installation

```
npm install --save-dev eslint-config-atomic
```

You should have the peer dependencies.

If using `npm`, the bundled Eslint, TypeScript, Babel, etc is hoisted automatically.

If using `pnpm`, either add the following to your `.npmrc` to hoist the prettier bundled with the config

```
public-hoist-pattern[]=*
```

Or install these yourself in your `devDependencies`.

```
pnpm install -save-dev eslint typescript @babel/core
```

## Usage

Create a `.eslintrc.json` file at the root of the project with the following content:

```json
{
"extends": "eslint-config-atomic",
"ignorePatterns": ["dist/", "node_modules/"]
}
```

`ignorePatterns` is the Eslint ignore paths.

Add a lint script to your `package.json`:

```json
"lint": "eslint . --fix"
```

### Options

- **strict**:
You can instead use the `strict` version which throws errors instead of warning:

```json
{
"extends": "eslint-config-atomic/strict",
"ignorePatterns": ["dist/", "node_modules/"]
}
```

- **solid**:
You can instead use the `solid` version which throws errors instead of warning:

```json
{
"extends": "eslint-config-atomic/solid",
"ignorePatterns": ["dist/", "node_modules/"]
}
```

- **strict-solid**:
Same as the solid version but it is strict:

```json
{
"extends": "eslint-config-atomic/strict-solid",
"ignorePatterns": ["dist/", "node_modules/"]
}
```

- **react**:
It supports react using `eslint-plugin-react`.

```json
{
"extends": "eslint-config-atomic/react",
"ignorePatterns": ["dist/", "node_modules/"]
}
```

- **strict-react**:
Same as the react version but it is strict:

```json
{
"extends": "eslint-config-atomic/strict-react",
"ignorePatterns": ["dist/", "node_modules/"]
}
```

## Behind the scenes

This configuration lints JavaScript, TypeScript, CoffeeScript, JSON, and YAML.

The list of used plugins and dependencies:

```
"@typescript-eslint/eslint-plugin": "^4.14.2",
"@typescript-eslint/parser": "^4.14.2",
"eslint-plugin-coffee": "^0.1.13",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-json": "^2.1.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-only-warn": "^1.0.2",
"eslint-plugin-optimize-regex": "^1.2.0",
"eslint-config-prettier": "^7.2.0",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-yaml": "^0.3.0",
"prettier": "^2",
"typescript": "^4",
"coffeescript": "^1",
"@babel/core": "^7",
"@babel/eslint-parser": "^7.13.14",
```