{"id":19772,"library":"eslint-plugin-getsentry","title":"eslint-plugin-getsentry","description":"Custom ESLint plugin providing rules specific to Sentry's development workflow, such as enforcing internationalized strings in JSX. Version 2.0.0 is the latest stable release, actively maintained alongside the getsentry/sentry project. Differentiates from generic linting by catering to Sentry's codebase conventions, focusing on preventing untranslated UI strings.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/getsentry/eslint-plugin-getsentry","tags":["javascript"],"install":[{"cmd":"npm install eslint-plugin-getsentry","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-getsentry","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-getsentry","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required for ESLint plugin functionality","package":"eslint","optional":false}],"imports":[{"note":"Plugin is a default export; use import for ESM environments.","wrong":"const getsentry = require('eslint-plugin-getsentry')","symbol":"plugin","correct":"import getsentry from 'eslint-plugin-getsentry'"},{"note":"Rules object is exported as named export in CJS; ESM named export also works but less common.","wrong":"import { rules } from 'eslint-plugin-getsentry'","symbol":"rules","correct":"const { rules } = require('eslint-plugin-getsentry')"},{"note":"Configs are a named export; default export is the plugin object itself.","wrong":"import configs from 'eslint-plugin-getsentry'","symbol":"configs","correct":"const { configs } = require('eslint-plugin-getsentry')"}],"quickstart":{"code":"// .eslintrc.js\nmodule.exports = {\n  plugins: ['getsentry'],\n  rules: {\n    'getsentry/jsx-needs-il8n': 'warn'\n  }\n};\n\n// component.jsx\nfunction MyComponent() {\n  return <div>Hello</div>; // triggers warning: string literal should be wrapped for i18n\n}","lang":"javascript","description":"Configures ESLint with the getsentry plugin and demonstrates the jsx-needs-il8n rule warning on an untranslated string."},"warnings":[{"fix":"Use exact rule name 'jsx-needs-il8n' in your ESLint configuration.","message":"The rule name is 'jsx-needs-il8n' (note the capital I and digit 8, not 'i18n').","severity":"gotcha","affected_versions":">=0.1.0"},{"fix":"Review current set of supported rules in the plugin documentation.","message":"Some older rules from previous versions may have been removed; check changelog when upgrading.","severity":"deprecated","affected_versions":">=1.0.0"},{"fix":"Ensure eslint is a peer dependency (version 8+ recommended for plugin v2).","message":"ESLint peer dependency requirement may change between major versions.","severity":"breaking","affected_versions":">=2.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Run 'npm install eslint-plugin-getsentry --save-dev'.","cause":"Plugin is not installed or missing from node_modules.","error":"Error: Failed to load plugin 'getsentry' declared in '.eslintrc': Cannot find module 'eslint-plugin-getsentry'"},{"fix":"Add 'getsentry' to the plugins array in your ESLint config.","cause":"Plugin is not listed in the 'plugins' array.","error":"ESLint configuration in .eslintrc.json is invalid: - Rule 'getsentry/jsx-needs-il8n' is not defined"},{"fix":"Set 'ecmaFeatures: { jsx: true }' or use a parser like '@babel/eslint-parser'.","cause":"ESLint is not configured to parse JSX syntax.","error":"Parsing error: Unexpected token < in file.jsx"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}