Registry / testing / eslint-plugin-ckeditor5-rules

eslint-plugin-ckeditor5-rules

JSON →
library15.0.0jsnpmunverified

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.

testing
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

ESM-only package since v13; does not provide CommonJS export

import ckeditor5Rules from 'eslint-plugin-ckeditor5-rules'

ESLint flat config requires plugin object, not string array

plugins: { 'ckeditor5-rules': ckeditor5Rules }

Rule names must be prefixed with 'ckeditor5-rules/' in flat config

'ckeditor5-rules/no-relative-imports': 'error'

Minimal ESLint flat config using the plugin with two CKEditor 5 rules

import { defineConfig } from 'eslint/config'; import ckeditor5Rules from 'eslint-plugin-ckeditor5-rules'; export default defineConfig([ { plugins: { 'ckeditor5-rules': ckeditor5Rules }, rules: { 'ckeditor5-rules/no-relative-imports': 'error', 'ckeditor5-rules/license-header': ['error', { headerLines: [ '/**', ' * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.', ' * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license', ' */' ] }], 'ckeditor5-rules/no-enum': 'error' } } ]);
Debug
Known footguns
breakingRemoved 'ckeditor-imports' rule in v14.0.0
breakingRemoved 'no-legacy-imports' rule in v14.0.0
deprecatedThe 'ckeditor5-rules/no-enum' rule is enabled by default in eslint-config-ckeditor5 since v15.0.0, disallowing enums unconditionally
gotchaRequires Node.js >=24.11.0; older Node versions will cause runtime errors
gotchaESM-only package; cannot be used with CommonJS require or older ESLint (legacy .eslintrc) formats
breakingEnabled 'enforce-node-protocol' rule for all JS/TS files in v13.0.0
Upgrade
Version history

Breaking-change detection hasn't run for this library yet.

Audit
Security & dependencies

CVE tracking and dependency tree are planned for a later release.

Agent activity
9 hits · last 30 days
gptbot
4
ahrefsbot
4
script
1
Resources