使用 ReactJS 将插件添加到 CKEditor5 的自定义构建中

2023-12-21

我正在尝试向 CKEditor5 的经典版本添加一个插件。我已按照此页面上的说明进行操作:https://ckeditor.com/docs/ckeditor5/latest/installation/plugins/installing-plugins.html https://ckeditor.com/docs/ckeditor5/latest/installation/plugins/installing-plugins.html

我可以说我已经正确完成了所有事情,因为当我打开时一切都按预期进行sample/index.html.

现在是时候将此自定义构建与我的 React 应用程序集成了。

有关说明这一页 https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/react.html,“描述”要做什么:

您将在项目旁边的某个位置创建一个新构建,并包括 就像您包含了现有版本之一一样。

它说“像包含现有版本之一一样包含它”。好吧,这就是我包含经典构建的方式:

import React from "react";
import ReactDOM from "react-dom";
import CKEditor from "@ckeditor/ckeditor5-react";
import ClassicEditor from "@ckeditor/ckeditor5-build-classic";

import "./styles.css";

function App() {
  return (
    <div className="App">
      <CKEditor
        editor={ClassicEditor}
        // Other Props
        }}
      />
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

所以,我假设我会做这样的事情:

import React from "react";
import ReactDOM from "react-dom";
import CKEditor from "@ckeditor/ckeditor5-react";
import ClassicEditor from './ckeditor/ckeditor'


import "./styles.css";

function App() {
  return (
    <div className="App">
      <CKEditor
        editor={ClassicEditor}
        // Other Props
      />
    </div>
  );
}

const rootElement = document.getElementById("root");
ReactDOM.render(<App />, rootElement);

也就是说,只需更改import声明来自:

import ClassicEditor from "@ckeditor/ckeditor5-build-classic";

to

import ClassicEditor from './ckeditor/ckeditor'

With ./ckeditor/ckeditor/ckeditor.js文件中找到build我的自定义构建的修改版本的文件夹。

但是,这是行不通的。新的 ckeditor.js 文件中没有导出。既不是默认导出,也不是命名导出。所以也许我应该像这样导入文件:

import './ckeditor/ckeditor'

但是我如何告诉 React 组件使用哪个编辑器。有一个editorprop,它采用要使用的编辑器的名称 - 即:

<CKEditor
  editor={ClassicEditor}
  // Other Props
/>

所以我被困住了。我不知道如何将自定义构建包含到我的反应应用程序中。

有任何想法吗?

Thanks.


CKEditor团队帮我解决了这个问题。您可以在这里阅读解决方案:https://github.com/ckeditor/ckeditor5/issues/2072#issuecomment-534987536 https://github.com/ckeditor/ckeditor5/issues/2072#issuecomment-534987536

要点是我需要将自定义构建发布为 npm 包,在我的网站上安装该包,然后导入已安装的包。

一旦我这样做了,一切就都正常了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 ReactJS 将插件添加到 CKEditor5 的自定义构建中 的相关文章

随机推荐

  • XmlException:文档元素未出现 - 第 1 行,位置 1

    我正在尝试反序列化 xml 字符串 但由于某种原因 我收到标题中所述的错误 这是我要反序列化的代码 public void recieveObject
  • Visual Studio 2008 - 无法命中断点

    我知道很多人都遇到过这个问题 但我现在也遇到了这个问题并且无法解决问题 在完成一个项目数周后 VS 2008 随机给我一个错误 当我设置调试点时 我收到警告 当前不会命中断点 尚未为此文档加载任何符号 我已经重新构建了没有调试点的解决方案并
  • 测试重定向后加载的页面

    我有一个测试用例 应该验证在 POST 调用后 用户是否被重定向到正确的页面 Redirect Page in running FakeApplication val Some result route FakeRequest POST p
  • 多级子级上的 SwiftUI 更改已发布对象更改

    我有一个 ObservedObject AppStatus 类 它内部有多个 Published 类 如果我只在孩子方面有水平 一切都会很好 当我有一个 RecordingTimeManager 类 其中有另一个变量 2 级子级 时 问题就
  • .csv 的 ADODB 连接字符串

    我想在 Excel VBA 中使用 ADODB 处理 csv 文件 我尝试了在网上找到的一些字符串 但似乎都不起作用 我正在使用以下方式获取文件路径 strVFile Application GetOpenFilename CSV csv
  • WPF DataGrid,添加行时应用程序崩溃

    我有一个绑定到 TrackableCollection 的 wpf 数据网格 在某些罕见的情况下 并且仅对于少数选定的用户 当用户通过输入底部空白行添加新记录时 应用程序将崩溃 我无法重现该问题 我所拥有的只是抛出的异常的堆栈跟踪 有人见过
  • pandas 时间序列之间的日期时间函数?

    我一直在使用between timepandas 中 TimeSeries 的方法 它返回指定时间之间的所有值 无论其日期如何 但我需要选择both日期和时间 因为我的时间序列结构 包含多个日期 解决这个问题的一种方法虽然相当不灵活 但只是
  • Markdown 文件中到 Repo 根目录的相对链接

    我需要从 Markdown 文件获得到我的仓库根目录的相对链接 我需要它适用于任何叉子 所以这看起来是提供链接的唯一方法一些文件在根中 the Root README md or the Root README md 例如 如果它位于 do
  • 用JS获取某种类型的父HTML元素

    我的代码看起来像这样 特写 h2 span class stuff a stuff a span span class moreStuff Another test span h2 我找到了一种选择我的方法a元素 并为其附加一个 id 我现
  • 使用 OrderClose 类时无法编译代码

    我正在尝试构建一个对销售订单执行一些操作的插件 我还必须将订单设置为已履行 我在 SDK 文档中找到了必须用于以正确方式履行订单的摘录 var request new FulfillSalesOrderRequest OrderClose
  • Simpletarget 已弃用 glide 吗?

    自 Glide 早期更新以来 SimpleTarget 已被弃用 Glide with getActivity load uri asBitmap error R drawable no result diskCacheStrategy D
  • 在 ruby​​ 中对多维数组进行排序

    我有以下数组 2010 01 10 2 2010 01 09 5 2009 12 11 3 2009 12 12 12 2009 12 13 0 我只想按每组中的第二个值对其进行排序并返回最高的值 就像我希望输出为12与上面给定的输入 up
  • MiniProfilerEF6.Initialize() c# 上出错?

    我在 MVC 项目中调用的 App Start 方法中使用 miniprofiler MiniProfilerEF6 Initialize 我收到错误 the Entity Framework was already using a DbC
  • 哈希与签名二进制文件

    如果您想确保文件有效 未被篡改并且来自正确 预期的来源 您可以执行以下两件事 hashing and signing 出于我的问题的目的 hashing意味着提供要下载的文件 连同文件 的哈希值 客户端下载哈希值和文件 重新计算哈希值 并验
  • Delphi (-XE):通过隐式转换转换为记录类型

    我有一个带有方法的记录类型 代表特定的硬件测量类型 从仪器中作为字符串读取 该记录包含与字符串的隐式转换 如果我将字符串转换为记录类型 它似乎可以工作 但这安全吗 也就是说 通过隐式字符串转换将字符串转换为记录是否会根据分配临时值调用隐式转
  • 在日期范围和特定时间范围之间选择

    有没有办法在日期和特定时间范围之间选择记录 例如2013年11月1日到2013年11月30日05 00到15 00之间的所有记录 这是我到目前为止所做的 select count as total from tradingaccounts
  • 在Python中处理大二项式的求和

    我需要计算这个公式 它是这个积分的近似值 不过没关系 实际上我只是想计算Figure的值1 https i stack imgur com fi12W gif with PYTHON 这就是主题所关心的 K alpha 和 sigma 是单
  • 如何显示子模块获取的进度?

    我知道我可以告诉 Git 显示进度 例如 Resolving deltas 98 123 125 传递命令行参数时 progress到 例如获取命令 但我们有几个大型子模块 但没有显示任何进展 如何告诉 Git 也显示克隆子模块的进度 例如
  • Excel 剪贴板清除

    我是编写 Excel 宏的新手 但我正在努力完成工作 不管怎样 我试图将数据从 2 个工作表导出到另一个工作簿中的另外 2 个工作表 但是当我达到清除剪贴板的程度时 它根本不起作用 有人可以帮助我吗 这是我的代码 Sub manufactu
  • 使用 ReactJS 将插件添加到 CKEditor5 的自定义构建中

    我正在尝试向 CKEditor5 的经典版本添加一个插件 我已按照此页面上的说明进行操作 https ckeditor com docs ckeditor5 latest installation plugins installing pl