Contribute to this guide

指南更新到 CKEditor 5 v34.x

更新 CKEditor 5 安装时,请确保所有软件包版本相同,以避免错误。

对于自定义版本,您可以尝试删除 package-lock.jsonyarn.lock 文件(如果适用)并重新安装所有软件包,然后再重新构建编辑器。为了获得最佳效果,请确保您使用最新的软件包版本。

# 更新到 CKEditor 5 v34.0.0

于 2022 年 4 月 12 日发布。

有关版本 34.0.0 中引入的所有更改列表,请参阅 CKEditor 5 v34.0.0 的发行说明

以下是升级到 CKEditor 5 v34.0.0 时需要您注意的最重要更改。

# 协作服务器本地版本必须至少为 4.5.0

最新版本的 CKEditor 包含一些针对与 CKEditor 云服务服务器的 WebSockets 通信的修复和改进。如果您使用 CKEditor 云服务的本地版本(即协作服务器本地),则 CKEditor v34.0.0 将仅与版本 4.5.0 或更高版本的服务器配合使用。

在将您的 CKEditor 实例更新到 v34.0.0 之前,请确保您也拥有更新版本的协作服务器本地。

# CKEditor 5 协作功能中的额外依赖项

DLL 版本 支持是为修订历史记录引入的。因此,一些导入、插件要求和跨包依赖关系已更改以允许新的构建过程。从现在开始,当将某些 CKEditor 5 协作功能添加到编辑器时,将需要额外的插件。

RealTimeCollaborativeRevisionHistory 将需要将 RevisionHistory 添加到编辑器插件列表中

// ❌ Old imports:
import RealTimeCollaborativeRevisionHistory from '@ckeditor/ckeditor5-real-time-collaboration/src/realtimecollaborativerevisionhistory';
// ✅ New imports:
import RealTimeCollaborativeRevisionHistory from '@ckeditor/ckeditor5-real-time-collaboration/src/realtimecollaborativerevisionhistory';
import RevisionHistory from '@ckeditor/ckeditor5-revision-history/src/revisionhistory';

# 更改设置和清除编辑器只读模式的机制

通过此更新,editor.isReadOnly 属性变为只读。不再允许手动设置它,否则会导致错误。

现在只能通过引入锁定机制的专用方法来更改编辑器模式。因此,各种可以设置只读模式的功能不会发生冲突,并且不必相互了解。基本上,只有当所有先前将编辑器设置为只读的这些功能再次允许时,编辑器才会再次可编辑。

Editor 类上的新方法是 editor.enableReadOnlyMode( lockId )editor.disableReadOnlyMode( lockId ),它们分别启用和禁用只读模式。

如果至少设置了一个锁,则锁定机制将使编辑器变为只读。在所有这些锁被移除后,内容将再次可编辑。因为每个功能只负责设置和移除自己的锁,所以它们不会互相冲突。在引入此更改之前,设置和移除编辑器的只读状态可能会导致其内容在不应该的时候可编辑。

// ❌ Old usage:
function makeEditorReadOnly() {
    editor.isReadOnly = true;
}

function makeEditorEditable() {
    editor.isReadOnly = false;
}

// ✅ New usage:
const myFeatureLockId = Symbol( 'my-feature' );

function makeEditorReadOnly() {
    editor.enableReadOnlyMode( myFeatureLockId );
}

function makeEditorEditable() {
    editor.disableReadOnlyMode( myFeatureLockId );
}