Sentry ESLint Config for React

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

Shared ESLint configuration (v2.10.0) used across Sentry's frontend (React) projects. It extends a base config with rules for eslint-plugin-import and eslint-plugin-react, plus Jest rules. Released as part of a monorepo; cadence is intermittent, tied to Sentry internal needs. Differentiators: purpose-built for Sentry's code style; includes presets for React and Jest out of the box. Peer dependencies: eslint >=8, eslint-plugin-jest ^27.1.3, eslint-plugin-react ^7.31.10, eslint-plugin-import ^2.26.0.

error Error: eslint-config-sentry-react not found
cause Missing peer dependencies or npm can't resolve the config.
fix
Ensure all peer deps are installed: npm install -D eslint-config-sentry-react eslint@8 eslint-plugin-jest@^27.1.3 eslint-plugin-react@^7.31.10 eslint-plugin-import@^2.26.0
error Configuration for rule 'react/prop-types' is invalid
cause The config sets a rule that conflicts with your project's settings.
fix
Override the rule in your .eslintrc: 'react/prop-types': 'off' or adjust accordingly.
error Failed to load plugin 'jest' declared in 'sentry/jest'
cause eslint-plugin-jest not installed.
fix
Install eslint-plugin-jest@^27.1.3.
breaking v2 requires eslint >=8; v1 used eslint <8.
fix Upgrade eslint to v8 or later.
deprecated eslint-plugin-jest v27.1.3 is specific; newer plugin versions may conflict.
fix Pin eslint-plugin-jest to ^27.1.3 or update peer range.
gotcha The 'react.js' file stores a hardcoded React version; if you upgrade React, update that file manually.
fix Edit node_modules/eslint-config-sentry-react/react.js or override via settings.react.version in .eslintrc.
breaking Configuration outputs are ESM, but many ESLint configs are CJS; might cause loading issues in older ESLint.
fix Ensure ESLint is configured to handle ESM configs (e.g., use .eslintrc.cjs or set type:"module" in package.json).
gotcha Extending 'sentry' alone does not include React rules; use 'sentry/app' for React projects.
fix Set extends to 'sentry/app' instead of 'sentry'.
npm install eslint-config-sentry-react
yarn add eslint-config-sentry-react
pnpm add eslint-config-sentry-react

Install package with peer deps and configure .eslintrc to use Sentry React and Jest presets.

npm install -D eslint-config-sentry-react eslint@8 eslint-plugin-jest@^27.1.3 eslint-plugin-react@^7.31.10 eslint-plugin-import@^2.26.0
# .eslintrc.json
{
  "extends": ["sentry/app", "sentry/jest"],
  "rules": {}
}