0.6.20 • Published 3 years ago

eslint-config-yialo v0.6.20

Weekly downloads
36
License
MIT
Repository
github
Last release
3 years ago

Yialo's ESLint configuration

Package created to use with React + TypeScript + webpack stack.

Installation

npm install -DE eslint-config-yialo
yarn add eslint-config-yialo -DE

Uninstallation

npm uninstall -DE eslint-config-yialo
yarn remove eslint-config-yialo -DE

Peer dependencies

Notice that the package requires these peer dependencies:

You may install them quickly with this command:

npm install -DE @babel/core typescript
yarn add @babel/core typescript -DE

Command for quick removal of them:

npm uninstall -D @babel/core typescript
yarn remove @babel/core typescript -D

Presets

This package contains several configuration presets for ESLint:

Presets may be used at high-level of config as well as extends of overrides blocks:

  • presets/node
  • presets/web-react-babel
  • presets/web-react-babel-jest
  • presets/web-react-ts-check
  • presets/web-react-ts-check-jest
  • presets/web-react-ts-nocheck
  • presets/web-react-ts-nocheck-jest

Possible caveats

Custom resolver

In case of any webpack-based preset usage you MUST define import/resolver explicitly in settings section for correct applying of aliases and extensions from webpack.resolve config block.

Usage with eslint-import-resolver-webpack:

// .eslintrc.js
settings: {
  'import/resolver': {
    webpack: {
      config: './config/webpack.config.js',
      env: {
        target: 'development',
      },
    },
  },
},

Usage with eslint-import-resolver-typescript:

// .eslintrc.js
settings: {
  'import/resolver': {
    typescript: {
      alwaysTryTypes: true,
      project: './tsconfig.json',
    },
  },
},

Usage with Node resolver (default):

// .eslintrc.js
settings: {
  'import/resolver': 'node',
},

Babel config

In case of presets/web-react-babel or presets/web-react-babel-jest usage when Babel config file is not located in the same directory as ESLint config or has non-standard name, you MUST define babelOptions.configFile parser option:

parserOptions: {
  babelOptions: {
    configFile: './config/babel.config.js',
  },
},

TypeScript config

In case of any ts-check-based preset usage you MUST define project explicitly in parserOptions section for correct typechecking:

parserOptions: {
  project: ['./tsconfig.json'],
},

End-user config example

// .eslintrc.js
'use strict';

const babelConfigMixin = {
  parserOptions: {
    babelOptions: {
      configFile: './babel.config.js',
    },
  },
  settings: {
    'import/resolver': {
      webpack: {
        config: './config/webpack.config.js',
      },
    },
  },
};

const tsConfigMixin = {
  parserOptions: {
    tsconfigRootDir: __dirname,
    project: './tsconfig.json',
  },
  settings: {
    'import/resolver': {
      typescript: {
        alwaysTryTypes: true,
        project: './tsconfig.json',
      },
    },
  },
};

module.exports = {
  globals: {
    process: 'readonly',
  },
  ignorePatterns: [
    '*.html',
    '/dist/',
  ],
  overrides: [
    {
      files: [
        './*.js',
        './scripts/**/*.js',
      ],
      extends: ['yialo/presets/node'],
      settings: {
        'import/resolver': 'node',
      },
    },
    {
      files: ['./src/**/*.js?(x)'],
      extends: ['yialo/presets/web-react-babel'],
      ...babelConfigMixin,
    },
    {
      files: ['./src/**/*.{spec,test}.js?(x)'],
      extends: ['yialo/presets/web-react-babel-jest'],
      ...babelConfigMixin,
    },
    {
      files: ['./src/**/*.ts?(x)'],
      extends: ['yialo/presets/web-react-ts-check'],
      ...tsConfigMixin,
    },
    {
      files: ['./src/**/*.{spec,test}.ts?(x)'],
      extends: ['yialo/presets/web-react-ts-check-jest'],
      ...tsConfigMixin,
    },
  ],
};
0.6.20

3 years ago

0.6.12

4 years ago

0.6.18

3 years ago

0.6.17

3 years ago

0.6.19

3 years ago

0.6.14

3 years ago

0.6.13

4 years ago

0.6.16

3 years ago

0.6.15

3 years ago

0.6.9

4 years ago

0.6.10

4 years ago

0.6.11

4 years ago

0.6.7

4 years ago

0.6.8

4 years ago

0.6.6

4 years ago

0.6.5

4 years ago

0.6.4

4 years ago

0.6.3

4 years ago

0.6.2

4 years ago

0.6.1

4 years ago

0.6.0

4 years ago

0.5.37

4 years ago

0.5.36

4 years ago

0.5.35

4 years ago

0.5.34

4 years ago

0.5.33

4 years ago

0.5.32

4 years ago

0.5.31

4 years ago

0.5.30

4 years ago

0.5.29

4 years ago

0.5.27

4 years ago

0.5.28

4 years ago

0.5.21

4 years ago

0.5.22

4 years ago

0.5.25

4 years ago

0.5.26

4 years ago

0.5.23

4 years ago

0.5.24

4 years ago

0.5.20

4 years ago

0.5.19

4 years ago

0.5.18

4 years ago

0.5.16

4 years ago

0.5.17

4 years ago

0.5.15

4 years ago

0.5.14

4 years ago

0.5.13

4 years ago

0.5.12

4 years ago

0.5.11

4 years ago

0.5.10

4 years ago

0.5.9

4 years ago

0.5.8

4 years ago

0.5.7

5 years ago

0.5.6

5 years ago

0.5.5

5 years ago

0.5.4

5 years ago

0.5.3

5 years ago

0.5.2

5 years ago

0.5.1

5 years ago

0.5.0

5 years ago

0.4.0

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.1

5 years ago