Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/yoctol/eslint-config-yoctol

Yoctol specific linting rules for ESLint
https://github.com/yoctol/eslint-config-yoctol

eslint eslint-config

Last synced: 5 days ago
JSON representation

Yoctol specific linting rules for ESLint

Awesome Lists containing this project

README

        

# eslint-config-yoctol

[![NPM version][npm-image]][npm-url]
[![Build Status][travis-image]][travis-url]
[![Greenkeeper badge](https://badges.greenkeeper.io/Yoctol/eslint-config-yoctol.svg)](https://greenkeeper.io/)
[![Dependency Status][david_img]][david_site]

> Yoctol Info. ESLint config, fork from [eslint-config-airbnb](https://github.com/airbnb/javascript/tree/master/packages/eslint-config-airbnb)

## Usage

### eslint-config-yoctol

Our default export contains all of our ESLint rules, including EcmaScript 6+
and React. It requires `eslint`, `eslint-plugin-import`, `eslint-plugin-react`, `eslint-plugin-react-hooks`, `eslint-plugin-jsx-a11y`, `eslint-plugin-prettier`, `eslint-plugin-sort-imports-es6-autofix` and `prettier`.

1. Install the correct versions of each package, which are listed by the command:

```sh
npm info "eslint-config-yoctol@latest" peerDependencies
```

Linux/OSX users can simply run

```sh
(
export PKG=eslint-config-yoctol;
npm info "$PKG@latest" peerDependencies --json | command sed 's/[\{\},]//g ; s/: /@/g' | xargs npm install --save-dev "$PKG@latest"
)
```

Which produces and runs a command like:

```sh
npm install --save-dev eslint-config-yoctol eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# eslint-plugin-react-hooks@^#.#.# eslint-plugin-prettier@^#.#.# eslint-plugin-sort-imports-es6-autofix@^#.#.#
```

Windows users can either install all the peer dependencies manually, or use the [install-peerdeps](https://github.com/nathanhleung/install-peerdeps) cli tool.

```sh
npm install -g install-peerdeps
install-peerdeps --dev eslint-config-yoctol
```

The cli will produce and run a command like:

```sh
npm install --save-dev eslint-config-yoctol eslint@^#.#.# eslint-plugin-jsx-a11y@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-react@^#.#.# eslint-plugin-react-hooks@^#.#.# eslint-plugin-prettier@^#.#.# eslint-plugin-sort-imports-es6-autofix@^#.#.#
```

2. Add `"extends": "yoctol"` to your .eslintrc

### eslint-config-yoctol/base

This entry point is deprecated. See [eslint-config-yoctol-base](https://npmjs.com/eslint-config-yoctol-base).

### eslint-config-yoctol/legacy

This entry point is deprecated. See [eslint-config-yoctol-base](https://npmjs.com/eslint-config-yoctol-base).

See [Airbnb's Javascript styleguide](https://github.com/yoctol/javascript) and
the [ESlint config docs](http://eslint.org/docs/user-guide/configuring#extending-configuration-files)
for more information.

## Rules be overwritten

### react

```
- react/destructuring-assignment: 'off'
- react/sort-prop-types: ['error', {
callbacksLast: true,
ignoreCase: false,
requiredFirst: false,
}]
- react/no-deprecated: ['warn']
- react/prefer-stateless-function: 'off'
- react/jsx-filename-extension: ['error', { extensions: ['.js'] }]
- react-hooks/rules-of-hooks: 'error'
- react-hooks/exhaustive-deps: 'error'
```

[npm-image]: https://badge.fury.io/js/eslint-config-yoctol.svg
[npm-url]: https://npmjs.org/package/eslint-config-yoctol
[travis-image]: https://travis-ci.org/Yoctol/eslint-config-yoctol.svg
[travis-url]: https://travis-ci.org/Yoctol/eslint-config-yoctol
[david_img]: https://david-dm.org/Yoctol/eslint-config-yoctol.svg
[david_site]: https://david-dm.org/Yoctol/eslint-config-yoctol