Skip to content

Yoctol/eslint-config-yoctol

Repository files navigation

eslint-config-yoctol

NPM version Build Status Greenkeeper badge Dependency Status

Yoctol Info. ESLint config, fork from 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:
npm info "eslint-config-yoctol@latest" peerDependencies

Linux/OSX users can simply run

(
  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:

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 cli tool.

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

The cli will produce and run a command like:

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@^#.#.#
  1. Add "extends": "yoctol" to your .eslintrc

eslint-config-yoctol/base

This entry point is deprecated. See eslint-config-yoctol-base.

eslint-config-yoctol/legacy

This entry point is deprecated. See eslint-config-yoctol-base.

See Airbnb's Javascript styleguide and the ESlint config docs 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'