ESLint Config Satya164

raw JSON →
5.1.8 verified Sat Apr 25 auth: no javascript

A personal ESLint configuration by @satya164, currently at v5.1.8, released in February 2026. It follows a non-intrusive, error-focused philosophy, avoiding purely stylistic rules. The config automatically adapts to file types (e.g., TypeScript for .ts/.tsx, Jest environment for test files) via ESLint's overrides. It includes essential plugins like eslint-plugin-import-x, typescript-eslint, react, react-hooks, jest, vitest, and prettier. Requires ESLint 9 flat config. Differentiates from other configs by being minimal and opinionated only where it catches actual bugs, with optional type-aware rules. Release cadence is irregular with occasional bug fixes and feature additions.

error Error: Failed to load plugin 'import-x' declared in 'eslint-config-satya164': Cannot find module 'eslint-plugin-import-x'
cause Missing required peer dependency for import-x plugin.
fix
Install eslint-plugin-import-x: npm install eslint-plugin-import-x -D
error ReferenceError: require is not defined in ES module scope, you can use import instead
cause Attempting to use CommonJS require() with ESM-only package.
fix
Use ESM import syntax: import { recommended } from 'eslint-config-satya164'
error Error: The 'recommended' config is not found in 'eslint-config-satya164'
cause Using old default import syntax with v5.x.
fix
Import named export: import { recommended } from 'eslint-config-satya164'
error Parsing error: parserOptions.project has been set for @typescript-eslint/parser. The file does not match your project config: index.ts
cause TypeScript type-checking requires the file to be included in tsconfig.json.
fix
Ensure the file is included in tsconfig.json or set parserOptions.project to true with correct tsconfigRootDir.
breaking v5.0.3 (2025-05-09) separated the single default export into named exports for base, React, Jest, and Vitest configs.
fix Update imports from default import to named imports: import { recommended, react, jest, vitest } from 'eslint-config-satya164'
breaking v5.0.3 removed the single default export. Older default import from v4.x will not work with v5.x.
fix Use named exports like `import { recommended } from 'eslint-config-satya164'` instead of `import config from 'eslint-config-satya164'`.
deprecated Jest config named export may be deprecated in favor of Vitest config; both currently available.
fix Consider using `vitest` export instead of `jest` for new projects.
gotcha Type-checked rules require explicit parserOptions in your ESLint config.
fix Add `languageOptions: { parserOptions: { project: true, tsconfigRootDir: import.meta.dirname } }` when using `typechecked` config.
npm install eslint-config-satya164
yarn add eslint-config-satya164
pnpm add eslint-config-satya164

Creates an ESLint flat config using the base recommended rules, plus React and Vitest-specific configurations.

import { defineConfig } from 'eslint/config';
import { recommended, react, vitest } from 'eslint-config-satya164';

export default defineConfig(
  recommended,
  react,
  vitest,
  {
    // Optional custom overrides
    rules: {
      // Your additional rules
    }
  }
);