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.
Common errors
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.
Warnings
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.
Install
npm install eslint-config-satya164 yarn add eslint-config-satya164 pnpm add eslint-config-satya164 Imports
- recommended wrong
const recommended = require('eslint-config-satya164/recommended')correctimport { recommended } from 'eslint-config-satya164' - react wrong
import react from 'eslint-config-satya164'correctimport { react } from 'eslint-config-satya164' - typechecked wrong
import { typechecked } from 'eslint-config-satya164/typechecked'correctimport { typechecked } from 'eslint-config-satya164' - vitest
import { vitest } from 'eslint-config-satya164'
Quickstart
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
}
}
);