0.6.20 • Published 2 years ago

eslint-config-yialo v0.6.20

Weekly downloads
36
License
MIT
Repository
github
Last release
2 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

2 years ago

0.6.12

2 years ago

0.6.18

2 years ago

0.6.17

2 years ago

0.6.19

2 years ago

0.6.14

2 years ago

0.6.13

2 years ago

0.6.16

2 years ago

0.6.15

2 years ago

0.6.9

2 years ago

0.6.10

2 years ago

0.6.11

2 years ago

0.6.7

3 years ago

0.6.8

2 years ago

0.6.6

3 years ago

0.6.5

3 years ago

0.6.4

3 years ago

0.6.3

3 years ago

0.6.2

3 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.5.37

3 years ago

0.5.36

3 years ago

0.5.35

3 years ago

0.5.34

3 years ago

0.5.33

3 years ago

0.5.32

3 years ago

0.5.31

3 years ago

0.5.30

3 years ago

0.5.29

3 years ago

0.5.27

3 years ago

0.5.28

3 years ago

0.5.21

3 years ago

0.5.22

3 years ago

0.5.25

3 years ago

0.5.26

3 years ago

0.5.23

3 years ago

0.5.24

3 years ago

0.5.20

3 years ago

0.5.19

3 years ago

0.5.18

3 years ago

0.5.16

3 years ago

0.5.17

3 years ago

0.5.15

3 years ago

0.5.14

3 years ago

0.5.13

3 years ago

0.5.12

3 years ago

0.5.11

3 years ago

0.5.10

3 years ago

0.5.9

3 years ago

0.5.8

3 years ago

0.5.7

3 years ago

0.5.6

3 years ago

0.5.5

3 years ago

0.5.4

4 years ago

0.5.3

4 years ago

0.5.2

4 years ago

0.5.1

4 years ago

0.5.0

4 years ago

0.4.0

4 years ago

0.3.4

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.2.1

4 years ago

0.2.0

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.2

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago

0.0.1

4 years ago