Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

eslint-config-yoctol-base

Yoctol3.4kMIT0.24.2

Yoctol specific base linting rules for ESLint

eslint, eslintconfig, config, yoctol, javascript, styleguide

readme

eslint-config-yoctol-base

NPM version Build Status Greenkeeper badge Dependency Status

Yoctol Info. base ESLint config, fork from eslint-config-airbnb-base.

Usage

We export two ESLint configurations for your usage.

eslint-config-yoctol-base

Our default export contains all of our ESLint rules, including ECMAScript 6+. It requires eslint, eslint-plugin-import, 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-base@latest" peerDependencies

Linux/OSX users can simply run

(
  export PKG=eslint-config-yoctol-base;
  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-base eslint@^#.#.# eslint-plugin-import@^#.#.# 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-base

The cli will produce and run a command like:

npm install --save-dev eslint-config-yoctol-base eslint@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-prettier@^#.#.# eslint-plugin-sort-imports-es6-autofix@^#.#.#
  1. Add "extends": "yoctol-base" to your .eslintrc

eslint-config-yoctol-base/legacy

Lints ES5 and below. Requires eslint and eslint-plugin-import.

  1. Install the correct versions of each package, which are listed by the command:
npm info "eslint-config-yoctol-base@latest" peerDependencies

Linux/OSX users can simply run

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

Which produces and runs a command like:

npm install --save-dev eslint-config-yoctol-base eslint@^#.#.# eslint-plugin-import@^#.#.# eslint-plugin-prettier@^#.#.# eslint-plugin-sort-imports-es6-autofix@^#.#.#
  1. Add "extends": "yoctol-base/legacy" to your .eslintrc

See Airbnb's overarching ESLint config, Airbnb's Javascript styleguide, and the ESlint config docs for more information.

Rules be overwritten

best-practices

- 'class-methods-use-this': 'off'
- 'consistent-return': 'off'

errors

- 'comma-dangle': ['error', {
    arrays: 'always-multiline',
    objects: 'always-multiline',
    imports: 'always-multiline',
    exports: 'always-multiline',
    functions: 'ignore',
  }]

es6

- 'arrow-parens': ['error', 'as-needed']
- 'prefer-arrow-callback': ['error', { allowNamedFunctions: true }]
- 'prefer-destructuring': [
  'error',
  {
    VariableDeclarator: {
      array: false,
      object: true
    },
    AssignmentExpression: {
      array: false,
      object: false
    }
  },
  {
    enforceForRenamedProperties: false
  }
]

import

- import/prefer-default-export: 'off'
- import/order: ['error', {
  groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'],
  'newlines-between': 'always',
}]
- import/no-extraneous-dependencies: ['error', {
  devDependencies: [
    '**/__tests__/*.spec.js',
    '**/__stories__/*.story.js',
    '**/scripts/*.js',
    '**/test/**/*.js',
    '**/webpack.config.*.js',
  ],
}]

node

- 'global-require': 'off'

style

- linebreak-style: 'off'
- max-len: ['error', 100, 2, {
  ignorePattern: ' // eslint-disable-line ',
  ignoreUrls: true,
  ignoreComments: false,
  ignoreStrings: true,
  ignoreTemplateLiterals: true,
  ignoreRegExpLiterals: true,
}]
- no-plusplus: ['error', { allowForLoopAfterthoughts: true }]
- no-underscore-dangle: 'off'
- no-restricted-syntax: [
  'error',
  {
    selector: 'ForInStatement',
    message:
      'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.',
  },
  {
    selector: 'LabeledStatement',
    message:
      'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.',
  },
  {
    selector: 'WithStatement',
    message:
      '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.',
  },
]
(Note: remove ForOfStatement from airbnb's no-restricted-syntax)

prettier

- prettier/prettier: [
  'error',
  {
    trailingComma: 'es5',
    singleQuote: true
  },
  'arrow-body-style': 'off',
  'prefer-arrow-callback': 'off',
]

sort-imports-es6-autofix

- sort-imports-es6-autofix/sort-imports-es6: [
  'error',
  {
    ignoreCase: false,
    ignoreMemberSort: false,
    memberSyntaxSortOrder: ['single', 'multiple', 'all', 'none'],
  },
]

changelog

CHANGELOG

0.24.2 / 2021-09-17

  • [deps] support eslint-plugin-prettier >= 4.

0.24.1 / 2021-03-30

0.24.0 / 2021-03-29

  • [deps] use eslint>=7.7 as peerDeps
  • [deps] bump other deps

0.23.1 / 2020-06-12

  • [deps] support ESLint v7
  • [deps] bump other deps

0.23.0 / 2020-04-28

  • [deps] move prettier to peerDeps
  • [deps] use prettier>=2 as peerDeps
  • [deps] bump other deps

0.22.0 / 2020-02-04

  • [breaking] requires node>=10
  • [deps] bump other deps

0.21.2 / 2019-09-05

  • [deps] update dependency eslint-plugin-sort-imports-es6-autofix to 0.5.0
  • [deps] bump other deps

0.21.1 / 2019-08-27

  • chore: bump deps for security alert (#102)

0.21.0 / 2019-08-12

  • [new] add eslint v6 support
  • [deps] bump other deps

0.20.0 / 2019-03-18

  • [CI] remove node 6 and add node 10
  • [deps] bump deps

0.19.1 / 2019-03-18

  • [deps] update eslint-plugin-sort-imports-es6-autofix to v0.4.0
  • [deps] update eslint

0.19.0 / 2019-01-29

  • [new] 'prefer-arrow-callback': ['error', { allowNamedFunctions: true }]
  • [deps] update eslint-config-prettier to 4.0.0
  • [deps] update prettier to 1.16.1
  • [deps] peerDependencies eslint to v5.12.1
  • [deps] peerDependencies eslint-plugin-import to v2.15.0
  • [deps] peerDependencies eslint-plugin-prettier to v3.0.1

0.18.0 / 2018-10-24

  • [deps] peerDependencies eslint-plugin-prettier to v3.0.0

0.17.2 / 2018-09-16

  • [new] improve import/no-extraneous-dependencies by merging latest airbnb config

0.17.1 / 2018-08-21

  • [new] add eslint v5 support
  • [deps] update eslint-config-airbnb-base to 13.1.0
  • [deps] update eslint-plugin-import to 2.14.0
  • [deps] update prettier to 1.14.2

0.17.0 / 2018-07-23

  • [new] add sort-imports-es6-autofix to sort imports
  • [changed] remove ForOfStatement from restricted-syntax

0.16.0 / 2018-06-25

  • [deps] update eslint-config-airbnb-base to 13.0.0

0.15.1 / 2018-02-12

  • [disable] prefer-destructuring: AssignmentExpression - object: false

0.15.0 / 2018-01-28

  • [new] Add and disable some rules:

best-practices

- 'class-methods-use-this': 'off'
- 'consistent-return': 'off'

es6

- 'prefer-destructuring': [
  'error',
  {
    VariableDeclarator: {
      array: false,
      object: true
    },
    AssignmentExpression: {
      array: false,
      object: true
    }
  },
  {
    enforceForRenamedProperties: false
  }
]

node

- 'global-require': 'off'

prettier

- 'prettier/prettier': [
  'error',
  {
    trailingComma: 'es5',
    singleQuote: true
  }
]

0.14.2 / 2017-12-12

  • [deps] update eslint-config-airbnb-base to 12.1.0
  • [deps] update eslint to 4.13.1
  • [deps] update eslint-plugin-import to 2.8.0

0.14.1 / 2017-10-15

  • [deps] update eslint-config-airbnb-base to 12.0.2
  • [deps] update eslint to 4.8.0

0.14.0 / 2017-09-05

  • [deps] update eslint-config-airbnb-base to 12.0.0
  • [breaking] Drop eslint v3 support

0.13.0 / 2017-08-02

  • [deps] update eslint-config-airbnb-base to 11.3.1
  • [deps] update eslint-plugin-import to 2.7.0
  • [deps] Allow eslint v4

0.12.5 / 2017-05-15

  • [deps] update eslint-config-airbnb-base to 11.2.0

0.12.4 / 2017-04-05

  • [deps] update eslint to 3.19.0
  • [deps] update eslint-config-airbnb-base to 11.1.3

0.12.3 / 2017-04-05

  • [new] enable max-len - ignoreRegExpLiterals

0.12.2 / 2017-03-27

  • [deps] update eslint to 3.18.0
  • [deps] update eslint-config-airbnb-base to 11.1.2

0.12.1 / 2017-01-09

  • [deps] update eslint
  • [deps] update eslint-config-airbnb-base
  • [docs] add note about install-peerdeps
  • [docs] Updated instructions to support non-bash users

0.12.0 / 2016-12-13

  • [deps] Update eslint to 3.12.1
  • [deps] Update eslint-plugin-import to 2.2.0
  • [deps] Update eslint-config-airbnb-base to 11.0.0

0.11.0 / 2016-12-09

  • [breaking] ignore comma-dangle in functions
  • [breaking] disable requireForBlockBody in arrow-parens

0.10.0 / 2016-11-08

  • [deps] Update eslint to 3.9.1
  • [deps] Update eslint-plugin-import to 2.1.0
  • [deps] Update eslint-config-airbnb-base to 10.0.0

0.9.0 / 2016-11-03

  • [deps] Update eslint to 3.8.0
  • [deps] Update eslint-plugin-import to v2
  • [deps] Update eslint-config-airbnb-base to 9.0.0
  • [docs] ensure latest version of config is installed

0.8.1 / 2016-10-03

  • [fix] using **/ in import/no-extraneous-dependencies patterns

0.8.0 / 2016-09-29

  • [deps] Update eslint to 3.6.0
  • [deps] Update eslint-plugin-import to 1.16.0
  • [deps] Update eslint-config-airbnb-base to 8.0.0
  • [breaking] disable import/no-extraneous-dependencies for some dev file patterns

0.7.0 / 2016-09-19

  • [deps] Update eslint to 3.5.0
  • [deps] Update eslint-config-airbnb-base to 7.1.0
  • [breaking] disable max-len for // eslint-disable-line pattern

0.6.0 / 2016-09-08

  • [deps] Update eslint to 3.4.0
  • [deps] Update eslint-plugin-import to 1.14.0
  • [deps] Update eslint-config-airbnb-base to 7.0.0
  • [breaking] disable linebreak-style
  • [breaking] enable no-plusplus but allow for loop afterthoughts

0.5.0 / 2016-09-01

  • [deps] Update eslint to 3.3.1
  • [deps] Update eslint-plugin-import to 1.13.0
  • [deps] Update eslint-config-airbnb-base to 5.0.3
  • [breaking] disable import/prefer-default-export
  • [breaking] enable import/order

0.4.0 / 2016-07-18

  • [deps] Update eslint to 3.1.0
  • [deps] Update eslint-plugin-import to 1.10.3
  • [deps] Update eslint-config-airbnb-base to 4.0.2

0.3.1 / 2016-06-07

  • [fix] Avoid eslint-config-airbnb-base overwrite yoctol's legacy rules directly

0.3.0 / 2016-06-07

  • [breaking] disable no-underscore-dangle

0.2.0 / 2016-05-10

  • [deps] Update eslint-config-airbnb-base to 3.0.1

0.1.2 / 2016-05-06

  • [fix] Put eslint-config-airbnb-base after require legacy

0.1.1 / 2016-05-06

  • [fix] Fix missing eslint-config- prefix

0.1.0 / 2016-05-06

  • Initial commmit; moved content over from eslint-config-yoctol package.