自定义插件的版本兼容性
本指南解释了如何使您的自定义 CKEditor 5 插件与多个版本的 CKEditor 5 兼容。确保您的插件适用于最新的 CKEditor 5 版本非常重要,但将其与旧版本兼容也是一个好习惯。这样,无法升级到最新版本的使用者仍然可以使用您的插件。
# 不同的构建和版本
CKEditor 5 可通过不同的安装方式和版本获得。幸运的是,版本之间的唯一区别是编辑器及其插件的导入方式。所有其他 API 保持不变。
版本 42.0.0 中引入的当前支持的安装方式需要使用 ckeditor5
包导入编辑器及其开源插件,并使用 ckeditor5-premium-features
包导入高级功能。在 42.0.0 版本之前,CKEditor 5 有多个构建,需要使用不同的导入路径导入编辑器及其插件。
# 选择合适的支持策略
首先,您需要决定要支持哪些版本的 CKEditor 5,因为它将定义您需要使用的导入。
如果您的插件在您无法控制的项目中使用(例如,如果您的插件是开源的),您应该考虑支持广泛的版本范围,这些项目可能使用旧的安装方式。如果您正在为特定项目开发插件,可以选择仅支持该项目中使用的安装方式。
但是,请注意,支持旧的安装方式需要您使用将来将被弃用的旧导入。一旦旧的安装方式被弃用,您将需要更新您的插件。
# 仅支持版本 42.0.0 及更高版本
如果您只想支持最新版本的 CKEditor 5,可以使用 ckeditor5
包导入编辑器及其插件。
如果您选择这种方法,一旦旧的安装方式被弃用,您将不需要对插件进行任何更改,但代价是不支持低于 42.0.0 的版本。
import { Plugin, ButtonView } from 'ckeditor5';
如果您需要使用高级功能,可以使用 ckeditor5-premium-features
包导入它们。
import { AIAssistant } from 'ckeditor5-premium-features';
# 支持旧版本
如果您要支持旧版本的 CKEditor 5,您无法从 ckeditor5
和 ckeditor5-premium-features
导入,而是使用旧的导入路径。您需要遵循三个规则
-
如果您需要从以下任何包导入代码,您必须使用
ckeditor5/src/*
导入,而不是包名@ckeditor/ckeditor5-clipboard
,@ckeditor/ckeditor5-core
,@ckeditor/ckeditor5-engine
,@ckeditor/ckeditor5-enter
,@ckeditor/ckeditor5-paragraph
,@ckeditor/ckeditor5-select-all
,@ckeditor/ckeditor5-typing
,@ckeditor/ckeditor5-ui
,@ckeditor/ckeditor5-undo
,@ckeditor/ckeditor5-upload
,@ckeditor/ckeditor5-utils
,@ckeditor/ckeditor5-watchdog
,@ckeditor/ckeditor5-widget
.
例如,要导入来自
@ckeditor/ckeditor5-core
包的代码,您需要使用ckeditor5/src/core.js
导入。 -
如果您需要从
@ckeditor/ckeditor5-collaboration-core
包导入代码,您必须使用ckeditor5-collaboration/src/core.js
导入。 -
在所有其他情况下,您可以使用包名作为导入路径。您应该只从主包入口点导入,而不是从子文件夹导入。
// ✅ import { Table } from '@ckeditor/ckeditor5-table'; // ❌ import Table from '@ckeditor/ckeditor5-table/src/table'; // ❌ import TableRowIcon from '@ckeditor/ckeditor5-table/theme/icons/table-row.svg';
在构建过程中,这些导入在为旧版本的 CKEditor 5 生成捆绑包时将按原样使用,但在为最新版本生成捆绑包时将替换为 ckeditor5
和 ckeditor5-premium-features
。
我们每天都在努力使我们的文档保持完整。您是否发现了过时的信息?有什么东西丢失了吗?请通过我们的 问题跟踪器 报告它。
随着版本 42.0.0 的发布,我们重新编写了大部分文档以反映新的导入路径和功能。我们感谢您的反馈,这将帮助我们确保文档的准确性和完整性。