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
muslnode 18–226 runs
build_error
glibcnode 18–226 runs
build_error
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
ClassicEditor
✓ import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
✗ const ClassicEditor = require('ckeditor5');
For easiest integration, use a pre-built editor like `@ckeditor/ckeditor5-build-classic`. The core `ckeditor5` package does not directly export `ClassicEditor`. For custom builds, you would import `ClassicEditor` from `@ckeditor/ckeditor5-editor-classic` and assemble plugins manually.
Paragraph
✓ import Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';
✗ import { Paragraph } from 'ckeditor5';
When creating a custom editor build, individual features and plugins are imported from their specific sub-packages, like `@ckeditor/ckeditor5-paragraph`, not directly from the meta-package `ckeditor5`.
EditorConfig
✓ import type { EditorConfig } from '@ckeditor/ckeditor5-core';
✗ import { EditorConfig } from 'ckeditor5';
Core types like `EditorConfig` are generally available from the `@ckeditor/ckeditor5-core` package for type safety. It's often beneficial to use more specific editor config types, such as `ClassicEditorConfig` from `@ckeditor/ckeditor5-editor-classic`, when applicable.
Initializes a `ClassicEditor` instance on a DOM element with basic toolbar configuration, demonstrating a common setup for rich text editing.
import ClassicEditor from '@ckeditor/ckeditor5-build-classic';
import type { EditorConfig } from '@ckeditor/ckeditor5-core';
// This is a minimal example. In a real application, you might use a framework component.
// Ensure a div with id="editor" exists in your HTML.
// Example CKEditor 5 configuration
const editorConfiguration: EditorConfig = {
toolbar: [ 'heading', '|', 'bold', 'italic', 'link', 'bulletedList', 'numberedList', 'blockQuote', '|', 'undo', 'redo' ],
language: 'en',
// Example of a potentially sensitive configuration, though basic editor doesn't need it.
// For LTS versions or specific features (like AI), a license key might be required.
// process.env.CKEDITOR_LICENSE_KEY is illustrative.
licenseKey: process.env.CKEDITOR_LICENSE_KEY ?? '' // Example: For LTS or specific premium features
};
document.addEventListener('DOMContentLoaded', () => {
const editorElement = document.querySelector('#editor');
if (editorElement) {
ClassicEditor
.create( editorElement, editorConfiguration )
.then( editor => {
console.log( 'Editor was initialized', editor );
// Access editor data: editor.getData();
})
.catch( error => {
console.error( 'There was a problem initializing the editor.', error );
});
} else {
console.error('Editor target element #editor not found.');
}
});
Debug
Known issues
breakingCKEditor 5 Long-term Support (LTS) Edition requires license verification. If your license key does not include LTS access, the editor will fail to load.fixObtain a valid CKEditor 5 LTS license key and provide it in the editor configuration (e.g., `config.licenseKey`). For non-LTS versions, ensure you are using a standard, non-LTS release.
affects: >=47.7.0
breakingCKEditor 5 v48.0.0 completes the sunset of old installation methods, potentially breaking existing custom build workflows.fixReview the official CKEditor 5 documentation for updated installation guides and migrate to modern build tooling (e.g., webpack, vite) for custom builds, or use official pre-built packages (`@ckeditor/ckeditor5-build-*`).
affects: >=48.0.0
breakingThe `Export to PDF` converter API version has changed in v48.0.0.fixUpdate existing integrations with the `Export to PDF` feature to align with the new converter API version as specified in the v48 release notes.
affects: >=48.0.0
breakingThe built-in Amazon Bedrock AI integration in the legacy AI Assistant plugin was removed. The `AWSTextAdapter` class now throws an error when used.fixIf relying on this specific legacy Amazon Bedrock integration, revert to a version prior to 47.6.2 or contact CKSource support for migration options to the current CKEditor AI offering, which uses a different integration mechanism.
affects: >=47.6.2 <48.0.0
breakingA Cross-Site Scripting (XSS) vulnerability (CVE-2026-28343) was discovered in the General HTML Support feature, which could lead to unauthorized JavaScript execution with unsafe configurations.fixUpgrade to CKEditor 5 v47.6.1 or a later patch version (e.g., v48.0.0). Additionally, always review and restrict the configuration of the General HTML Support feature to prevent the insertion of malicious or untrusted HTML.
affects: >=47.6.0 <47.6.1
gotchaMinor breaking changes to the CSS for the CKEditor AI integration in a sidebar mode (`config.ai.container`) were introduced.fixReview and adjust any custom CSS rules that target the CKEditor AI sidebar integration to align with the updated structure described in the v47.1.0 release notes.
affects: >=47.1.0
Errors
Common errors & fixes
Editor failed to load: The license key is invalid or does not grant access to the requested product edition.
Attempting to use a CKEditor 5 Long-term Support (LTS) version without a valid LTS license key or an expired key.
fixEnsure a valid CKEditor 5 LTS license key is provided in the editor configuration (`config.licenseKey`). Alternatively, if LTS is not required, use a non-LTS version of CKEditor 5.
AWSTextAdapter cannot be used as the Amazon Bedrock integration has been removed.
Attempting to use the `AWSTextAdapter` class from the legacy AI Assistant plugin, which had its built-in Amazon Bedrock integration removed in v47.6.2.
fixThis integration is deprecated and removed. If this specific integration is critical, revert to a version prior to v47.6.2, or migrate to the current CKEditor AI solution and its recommended adapters.
TypeError: ClassicEditor is not a constructor (or) Module not found: Can't resolve '@ckeditor/ckeditor5-build-classic'
Incorrect import path or module resolution issues, often when mixing CommonJS `require` with ESM `import` or trying to import a build from the core `ckeditor5` package.
fixEnsure you are using `import ClassicEditor from '@ckeditor/ckeditor5-build-classic';` and that your build tools (e.g., Webpack, Vite) are configured for ESM. For custom builds, import `ClassicEditor` from `@ckeditor/ckeditor5-editor-classic`.
Uncaught TypeError: editor.create is not a function
Attempting to call `create` directly on the `ckeditor5` package instead of a specific editor build (e.g., `ClassicEditor`). The `ckeditor5` package is a meta-package and does not export `create` directly for instantiating editors.
fixImport a specific editor build, such as `ClassicEditor` from `@ckeditor/ckeditor5-build-classic`, and then call `ClassicEditor.create(...)`.
Audit
Dependencies
No dependency data recorded yet.