Algolia ESLint Config

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

ESLint shareable config by Algolia for enforcing consistent code style across JavaScript, TypeScript, React, and Vue projects. v24.0.0 supports ESLint 5–9 and requires Prettier 3.x and @stylistic/eslint-plugin. Includes flat config support for ESLint 9. Provides preset for Vanilla, Jest, React, TypeScript, TypeScript+React, and Vue. Deprecated Flow support. Differentiator: opinionated, all-in-one setup with autofix and IDE integration.

error Error: Cannot find module 'eslint-config-algolia/flat/base'
cause Package version too old (pre-20) or wrong path.
fix
Update eslint-config-algolia to >=20.0.0, and use correct path: require('eslint-config-algolia/flat/base')
error Parsing error: The keyword 'const' is reserved
cause Using Babel parser without proper config or missing @babel/eslint-parser.
fix
Install @babel/eslint-parser and set parser in config.
error Failed to load plugin 'import' declared in 'eslint-config-algolia/base': Cannot find module 'eslint-plugin-import'
cause Missing required plugin.
fix
Run: yarn add eslint-plugin-import --dev
error TypeError: algolia is not a function (or cannot spread a non-iterable)
cause In flat config, the preset is an array, but user imported incorrectly.
fix
Use: const algolia = require('eslint-config-algolia/flat/base'); module.exports = [ ...algolia ];
error Error: Failed to load config "algolia/typescript" from extended config
cause Using .eslintrc.js extends with flat config path.
fix
For .eslintrc.js use 'algolia/typescript' (without /flat/). For flat config use require('.../flat/typescript').
breaking ESLint 9 requires flat config; eslintrc.js is deprecated.
fix Use eslint.config.js with require('eslint-config-algolia/flat/...') presets.
deprecated Flow presets (algolia/flowtype) are deprecated and may be removed in future versions.
fix Migrate to TypeScript or remove Flow preset.
gotcha Flat config presets must be spread (...algolia) because they are arrays.
fix Use module.exports = [ ...algolia, ...others ];
gotcha Requires prettier 3.x as peer dependency – older prettier versions are incompatible.
fix Update prettier to ^3.0.0.
gotcha Additional plugins (like react, typescript) must be installed separately; they are not included as dependencies.
fix Install eslint-plugin-react, @typescript-eslint/eslint-plugin, etc. as dev dependencies.
npm install eslint-config-algolia
yarn add eslint-config-algolia
pnpm add eslint-config-algolia

Setup for TypeScript project with ESLint flat config and Prettier.

// Install base dependencies
yarn add eslint @babel/eslint-parser prettier eslint-config-algolia eslint-config-prettier eslint-plugin-import eslint-plugin-prettier @eslint-community/eslint-plugin-eslint-comments eslint-plugin-jsdoc @stylistic/eslint-plugin --dev

// For TypeScript, add these as well:
yarn add @typescript-eslint/parser @typescript-eslint/eslint-plugin typescript --dev

// Create eslint.config.js:
const algolia = require('eslint-config-algolia/flat/base');
const algoliaTS = require('eslint-config-algolia/flat/typescript');

module.exports = [
  ...algolia,
  ...algoliaTS,
];

// Add scripts to package.json:
{
  "scripts": {
    "lint": "eslint .",
    "lint:fix": "eslint . --fix"
  }
}