Skip to content

StyleList94/eslint-config-stylish

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eslint-config-stylish

Stylish ESLint configuration for Front-end Engineers.

Getting Started

Requirements:

  • eslint: v9 or later
  • @eslint/js: v9 or later
  • eslint-plugin-import: v2 or later
  • eslint-plugin-jsx-a11y: v6 or later
  • eslint-plugin-react: v7 or later
  • eslint-plugin-react-hooks: v5 or later
  • eslint-plugin-react-you-might-not-need-an-effect: v0.7.0 or later
  • typescript-eslint: v8 or later (if you use TypeScript)
  • eslint-import-resolver-typescript: v3 or later (if you use TypeScript)
pnpm add -D \
  eslint-config-stylish \
  eslint @eslint/js \
  eslint-plugin-import \
  eslint-plugin-jsx-a11y \
  eslint-plugin-react \
  eslint-plugin-react-hooks \
  eslint-plugin-react-you-might-not-need-an-effect \
  typescript-eslint \
  eslint-import-resolver-typescript

Features

  • Base: Customized ESLint rules, import/export rules
  • React: Customized rules for React, JSX a11y
  • TypeScript: Adds TypeScript-specific linting rules and configurations.

Usage

set up your eslint.config.js file like this

Base

import { defineConfig } from 'eslint/config';
import stylish from 'eslint-config-stylish';

export default defineConfig([
  {
    files: ['**/*.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
    extends: [stylish],
  },
  /* */
]);

React

import { defineConfig } from 'eslint/config';
import stylishReact from 'eslint-config-stylish/react';
import stylishReactHooks from 'eslint-config-stylish/react-hooks';

export default defineConfig([
  {
    files: ['**/*.{js,jsx,tsx}'],
    extends: [stylishReact, stylishReactHooks],
  },
  {
    files: ['**/use*.ts'],
    extends: [stylishReactHooks],
  },
  /* */
]);

TypeScript

import { defineConfig } from 'eslint/config';
import stylishTypeScript from 'eslint-config-stylish/typescript';

export default defineConfig([
  {
    files: ['**/*.{ts,mts,cts,tsx}'],
    languageOptions: {
      parserOptions: {
        project: './tsconfig.json',
        ecmaFeatures: {
          jsx: true,
        },
        ecmaVersion: 12,
        sourceType: 'module',
      },
    },
    extends: [stylishTypeScript],
  },
  /* */
]);

Base rules

Customized rules

js

Rule details

Stylistic for js

Rule details

import

Rule details

react

Rule details

react-hooks

Rule details

  • react-hooks/rules-of-hooks: error
  • react-hooks/exhaustive-deps: warn

You Might Not Need an Effect all rules from the recommended configuration are enabled

jsx-a11y

Rule details

@typescript-eslint

Rule details

Stylistic for @typescript-eslint

Rule details

About

Stylish ESLint configuration for FE

Topics

Resources

Stars

Watchers

Forks