eslint-config-jimmy-guzman

An opinionated ESLint configuration that targets typescript, javascript, react and jest

Stats

StarsIssuesVersionUpdatedCreatedSize
eslint-config-jimmy-guzman
081.2.28 days ago22 days agoMinified + gzip package size for eslint-config-jimmy-guzman in KB

Readme

actions version downloads License semantic-release code style: prettier Code Coverage

eslint-config-jimmy-guzman

An opinionated ESLint configuration that targets typescript, javascript, react and jest

Table of Contents

Usage

The current version of eslint-config-jimmy-guzman is fully supported on LTS versions of node, and requires at least node v12.

Installation:

This requires the peer dependencies: eslint@^8.2.0, typescript@^4.4.0, and prettier@^2.4.0.

To easily install everything you can leverage install-peerdeps, i.e

for how
yarn/npm npx install-peerdeps --dev eslint-config-jimmy-guzman
yarn workspaces npx install-peerdeps eslint-config-jimmy-guzman --dev -yarn -x -W
pnpm pnpm dlx install-peerdeps eslint-config-jimmy-guzman --dev -pnpm

Configuration

Add extends: 'jimmy-guzman' to your .eslintrc to get all the rules that enforce code style, enforce best practices and prevent errors.

This package also includes rules for jest and typescript that can be used such as:

rules configuration notes
base extends: 'jimmy-guzman'
jest extends: ['jimmy-guzman', 'jimmy-guzman/jest']
typescript extends: ['jimmy-guzman', 'jimmy-guzman/typescript'] here
react extends: ['jimmy-guzman', 'jimmy-guzman/react'] here

Monorepos

The following rules don't support some monorepo setups so you might need to turned them off:

# .eslintrc.yml
rules:
  import/no-extraneous-dependencies: off

Typescript

jimmy-guzman/typescript ruleset requires type information that needs further configuration:

# .eslintrc.yml
parserOptions:
  project: ['./tsconfig.json']

You can read more about linting with type information here

React

jimmy-guzman/react favors React 17's new jsx transform so a couple of rules are turned off by default. If you are not using the new jsx transform, it's recommended to add this configuration:

parserOptions:
  ecmaFeatures:
    jsx: true
    pragma: React
rules:
  react/react-in-jsx-scope: error
  react/jsx-uses-react: error

Why

I wanted a one-stop shop for the ESLint rules across my projects to help keep up with ESLint upgrades across different plugins and to have consistency. Feel free to use this if it fits your needs. ❤️

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.