ESLint shareable config enforcing DevExtreme team code style, based on Airbnb style guide. Current stable version 1.1.9, released monthly with community contributions. Key differentiators: vendored legacy Airbnb presets (no need for eslint-config-airbnb-base/typescript), includes framework-specific configs (jQuery, Angular, React, Vue) and test configs (Jest, QUnit, TestCafe). Built for ESLint 9.18.0 flat config. Requires heavy peer dependency set (14 plugins) but provides comprehensive linting out-of-the-box. ESM-only, no CJS support.
npm install eslint-config-devextremeVerified import paths — ran on the pinned version, not inferred.
Typical flat config setup combining multiple DevExtreme configs (TypeScript, JavaScript, React, test frameworks) with a custom rule override.
Use eslint.config.mjs with flat config format; do not use .eslintrc.* files.
Use import syntax; require() will throw. Set type: 'module' in package.json or use .mjs extension.
Use DevExtreme configs directly; legacy Airbnb presets vendored as airbnb-config-legacy internal export (not recommended).
Remove rule from custom overrides if present; no replacement needed.
Run npm install with --legacy-peer-deps if using npm<7, or use npm>=7 which installs peers automatically.
Consider if spell check is necessary; may produce false positives with technical terms.
Change to import syntax: `import { typescript } from 'eslint-config-devextreme'`Install all peer dependencies: `npm install --save-dev @stylistic/eslint-plugin@5.4.0 ...` (see package.json peerDependencies)
Add settings to your config: `settings: { 'import/resolver': { node: { paths: ['src'] } } }`Ensure tsconfig.json exists at project root, or configure parserOptions.project in your config