Official ESLint plugin used by the CKEditor 5 team for enforcing project-specific code style and linting rules. Current stable version is 15.0.0 (released as part of CKEditor 5 linters config). The plugin follows CKEditor 5's major/minor versioning policy, with breaking changes occurring in major releases. It provides rules for import validation, license headers, no-enum, module tag validation, changelog formatting, and more. Typically used via the eslint-config-ckeditor5 preset, but can be used standalone. Requires Node.js >=24.11.0. Differentiators: tightly coupled with CKEditor 5 development workflow; includes rules like `cross-package-imports`, `no-relative-imports`, and `allow-imports-only-from-main-package-entry-point` that enforce strict module boundaries.
npm install eslint-plugin-ckeditor5-rulesVerified import paths — ran on the pinned version, not inferred.
Minimal ESLint flat config using the plugin with two CKEditor 5 rules
Use 'allow-imports-only-from-main-package-entry-point' rule instead
Remove the rule from your config; it is no longer needed
Use TypeScript union types instead of enums, or disable the rule if you must use enums
Upgrade Node.js to 24.11.0 or later
Use import syntax and ESLint flat config
Ensure all 'node:' imports use the full URL (e.g., 'node:fs') or disable the rule
Run 'npm install --save-dev eslint-plugin-ckeditor5-rules' and verify the import is correct (ESM only)
Use 'ckeditor5-rules/no-relative-imports': 'error' (include the prefix)
Change to 'import ckeditor5Rules from 'eslint-plugin-ckeditor5-rules'' and ensure your project uses ESM
Use 'ckeditor5-rules/allow-imports-only-from-main-package-entry-point' instead