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.
Common errors
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').
Warnings
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.
Install
npm install eslint-config-algolia yarn add eslint-config-algolia pnpm add eslint-config-algolia Imports
- algolia/base wrong
import algolia from 'eslint-config-algolia/flat/base';correctconst algolia = require('eslint-config-algolia/flat/base'); - algolia/react wrong
const algoliaReact = require('eslint-config-algolia/react');correctconst algoliaReact = require('eslint-config-algolia/flat/react'); - default legacy config wrong
extends: 'eslint-config-algolia'correctextends: 'algolia' - TypeScript flat config wrong
const algoliaTS = require('eslint-config-algolia/typescript');correctconst algoliaTS = require('eslint-config-algolia/flat/typescript'); - Jest flat config wrong
const algoliaJest = require('eslint-config-algolia/jest');correctconst algoliaJest = require('eslint-config-algolia/flat/jest');
Quickstart
// 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"
}
}