Shareable ESLint configuration for Brightspace projects. Version 2.12.1 is the latest stable release, updated as of February 2026, with a monthly release cadence driven by dependency bumps and fixes. It supports ESLint 7–9 and provides environment-specific configs (node, browser, Lit, React, testing). Unlike generic ESLint configs, it includes helper functions like `addExtensions` and `setDirectoryConfigs` for fine-grained control over file extensions and directory-level overrides. Notably, it migrated from deprecated `quotes` rule to `@stylistic/quotes` in v2.11.1, and adopted the flat config format (eslint.config.js) required by ESLint 9. This config is designed exclusively for D2L/Brightspace ecosystem but can serve as a reference for large-scale project configurations.
npm install eslint-config-brightspaceVerified import paths — ran on the pinned version, not inferred.
Shows how to combine browser and node configs with custom file extensions and an extra rule override.
Use import syntax in an ESM context (type: 'module' in package.json or .mjs extension).
Upgrade to v2.11.1 or later to use the stylistic version.
Use eslint.config.js file; remove any .eslintrc.* files.
Ensure ESLint version is 7.x, 8.x, or 9.x. ESLint 10+ not supported without upgrade.
Order configurations correctly: define global config first, then directory-specific overrides.
Use named imports like `import { nodeConfig } from 'eslint-config-brightspace'`.Change to import syntax and ensure eslint.config.js is treated as ESM (e.g., set type: 'module' in package.json).
Upgrade to v2.11.1+ and install '@stylistic/eslint-plugin' if it's not automatically installed.
Convert to eslint.config.js and use import syntax. Remove .eslintrc.* files.
Ensure the first argument is a valid config array (e.g., nodeConfig) and the second argument is an object mapping directory names to config arrays.