{"id":19485,"library":"eslint-config-algolia","title":"Algolia ESLint Config","description":"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.","status":"active","version":"24.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/algolia/eslint-config-algolia","tags":["javascript","eslint","eslintconfig","es6","algolia"],"install":[{"cmd":"npm install eslint-config-algolia","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-algolia","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-algolia","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency for ESLint config","package":"eslint","optional":false},{"reason":"peer dependency for Prettier integration","package":"prettier","optional":false},{"reason":"peer dependency for Stylistic ESLint rules","package":"@stylistic/eslint-plugin","optional":false}],"imports":[{"note":"ESLint 9 flat config: use require for CommonJS.","wrong":"import algolia from 'eslint-config-algolia/flat/base';","symbol":"algolia/base","correct":"const algolia = require('eslint-config-algolia/flat/base');"},{"note":"Flat config requires /flat/ prefix; legacy .eslintrc.js uses 'algolia/react'.","wrong":"const algoliaReact = require('eslint-config-algolia/react');","symbol":"algolia/react","correct":"const algoliaReact = require('eslint-config-algolia/flat/react');"},{"note":"For .eslintrc.js, use shorthand 'algolia', not full package name.","wrong":"extends: 'eslint-config-algolia'","symbol":"default legacy config","correct":"extends: 'algolia'"},{"note":"Flat config path includes /flat/; legacy is 'algolia/typescript'.","wrong":"const algoliaTS = require('eslint-config-algolia/typescript');","symbol":"TypeScript flat config","correct":"const algoliaTS = require('eslint-config-algolia/flat/typescript');"},{"note":"Requires eslint-plugin-jest installed separately.","wrong":"const algoliaJest = require('eslint-config-algolia/jest');","symbol":"Jest flat config","correct":"const algoliaJest = require('eslint-config-algolia/flat/jest');"}],"quickstart":{"code":"// Install base dependencies\nyarn 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\n\n// For TypeScript, add these as well:\nyarn add @typescript-eslint/parser @typescript-eslint/eslint-plugin typescript --dev\n\n// Create eslint.config.js:\nconst algolia = require('eslint-config-algolia/flat/base');\nconst algoliaTS = require('eslint-config-algolia/flat/typescript');\n\nmodule.exports = [\n  ...algolia,\n  ...algoliaTS,\n];\n\n// Add scripts to package.json:\n{\n  \"scripts\": {\n    \"lint\": \"eslint .\",\n    \"lint:fix\": \"eslint . --fix\"\n  }\n}","lang":"javascript","description":"Setup for TypeScript project with ESLint flat config and Prettier."},"warnings":[{"fix":"Use eslint.config.js with require('eslint-config-algolia/flat/...') presets.","message":"ESLint 9 requires flat config; eslintrc.js is deprecated.","severity":"breaking","affected_versions":">=20.0.0"},{"fix":"Migrate to TypeScript or remove Flow preset.","message":"Flow presets (algolia/flowtype) are deprecated and may be removed in future versions.","severity":"deprecated","affected_versions":">=18.0.0"},{"fix":"Use module.exports = [ ...algolia, ...others ];","message":"Flat config presets must be spread (...algolia) because they are arrays.","severity":"gotcha","affected_versions":">=20.0.0"},{"fix":"Update prettier to ^3.0.0.","message":"Requires prettier 3.x as peer dependency – older prettier versions are incompatible.","severity":"gotcha","affected_versions":">=24.0.0"},{"fix":"Install eslint-plugin-react, @typescript-eslint/eslint-plugin, etc. as dev dependencies.","message":"Additional plugins (like react, typescript) must be installed separately; they are not included as dependencies.","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Update eslint-config-algolia to >=20.0.0, and use correct path: require('eslint-config-algolia/flat/base')","cause":"Package version too old (pre-20) or wrong path.","error":"Error: Cannot find module 'eslint-config-algolia/flat/base'"},{"fix":"Install @babel/eslint-parser and set parser in config.","cause":"Using Babel parser without proper config or missing @babel/eslint-parser.","error":"Parsing error: The keyword 'const' is reserved"},{"fix":"Run: yarn add eslint-plugin-import --dev","cause":"Missing required plugin.","error":"Failed to load plugin 'import' declared in 'eslint-config-algolia/base': Cannot find module 'eslint-plugin-import'"},{"fix":"Use: const algolia = require('eslint-config-algolia/flat/base'); module.exports = [ ...algolia ];","cause":"In flat config, the preset is an array, but user imported incorrectly.","error":"TypeError: algolia is not a function (or cannot spread a non-iterable)"},{"fix":"For .eslintrc.js use 'algolia/typescript' (without /flat/). For flat config use require('.../flat/typescript').","cause":"Using .eslintrc.js extends with flat config path.","error":"Error: Failed to load config \"algolia/typescript\" from extended config"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}