{"id":19585,"library":"eslint-config-sentry","title":"Sentry ESLint Config","description":"ESLint shareable config for Sentry projects. Current stable version: 2.10.0. Release cadence is irregular; updates are tied to Sentry's monorepo changes. Key differentiators: includes strict rules for React and import order via eslint-plugin-import and eslint-plugin-react, with a separate 'app' preset for full app setups. Requires eslint >=8. Commonly used for internal Sentry codebases and open-source projects adopting Sentry's linting style.","status":"active","version":"2.10.0","language":"javascript","source_language":"en","source_url":"https://github.com/getsentry/eslint-config-sentry","tags":["javascript","eslint","eslint-config","sentry"],"install":[{"cmd":"npm install eslint-config-sentry","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-config-sentry","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-config-sentry","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency: required at runtime","package":"eslint","optional":false}],"imports":[{"note":"Use the shorthand 'sentry' in ESLint config, not the full package name.","wrong":"extends: ['eslint-config-sentry']","symbol":"extends","correct":"extends: ['sentry']"},{"note":"Use 'sentry/app' for full app setup with React and import rules.","wrong":"extends: ['sentry/app']","symbol":"extends","correct":"extends: ['sentry/app']"},{"note":"Only 'sentry' and 'sentry/app' are valid config names; no sub-configs exist.","wrong":"extends: ['sentry/base', 'sentry/react']","symbol":"extends","correct":"extends: ['sentry', 'sentry/app']"}],"quickstart":{"code":"{\n  \"extends\": \"sentry/app\",\n  \"rules\": {\n    \"react/prop-types\": \"off\"\n  }\n}","lang":"json","description":"Shows how to extend the 'sentry/app' config in .eslintrc.json."},"warnings":[{"fix":"Update ESLint to >=8 or pin eslint-config-sentry to <2.0.0.","message":"Version 2.0 dropped support for ESLint <8.0.0. Upgrading may break CI if older ESLint is pinned.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Replace 'sentry/base' with 'sentry' or 'sentry/app'.","message":"The 'sentry/base' config was removed in v2. Use 'sentry' or 'sentry/app' instead.","severity":"deprecated","affected_versions":">=2.0.0"},{"fix":"Use 'extends' not 'plugins' in ESLint config.","message":"Directly importing the package as a plugin (e.g., 'plugins: [\"sentry\"]') does nothing; it is an ESLint config, not a plugin.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Override the `import/order` rule in your .eslintrc: `{ \"rules\": { \"import/order\": \"off\" } }`","cause":"Conflict between eslint-config-sentry and user-defined import order rules.","error":"Configuration for rule 'import/order' is invalid"},{"fix":"Ensure eslint >=8 is installed and that the package is in node_modules. Run `npm ls eslint-config-sentry`.","cause":"ESLint version <8 or missing peer dependency.","error":"ESLint couldn't find the config \"sentry\" after installing eslint-config-sentry"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}