个人的一点倾向性观点:

什么是最好的所见即所得编辑器?

CKEditor,连 GitHub 都用了,你敢说它不是最好?连 GitHub 都用了所以我倾向于使用它。

什么是最好的前端开发框架?

UmiJS,不接受反驳。

那么在 UmiJS 中接入 CKEditor5 是什么体验?

折腾!

其实并非完全如此。
CKEditor5 提供了两种引入方式,一种是它构建好的,引入到项目中一点问题也没有。但由于是构建好的版本,虽然好用但不支持太多的定制化。另一种是引入它的源码,自己打包,这样就完全灵活了,可以各种骚操作。但是这就要求自己是个打包、构建高手,不然就会相当折腾。我就是在这里花了很长时间,寻求了 UmiJS 官方的帮助,最终才成功的。这里整理一下,供大家参考,希望可以助你一臂之力!

在 UmiJS 中接入构建好的 CKEditor5

这非常简单,一点儿也不折腾,但还是列在这里。示例源码见: https://github.com/Jeff-Tian/umi-ckeditor,部署在了 Vercel 上,可以通过 https://umi-ckeditor-tam5.vercel.app/editor 在线体验。

在 UmiJS 3 中接入 CKEditor5 源码,自行打包构建

这就稍稍折腾一点儿了,不过通过在 .umirc.js里使用 chainWebpack的方式,参考 CKEditor5 的官方文档,做一点点翻译就可以成功。
示例源码见:https://github.com/Jeff-Tian/umi-ckeditor5,部署在了 https://umi-ckeditor5.brickverse.dev/,可以直接点击链接在线体验。

在 UmiJS4 中接入 CKEditor5 源码,自行打包构建

难度爆表!需要深入理解 webpack,并能排除 svgo 的干扰。总之出现了一个 CKEditor5 显示不出来的问题,跟踪发现是在渲染工具栏时,需要获取 svg 图标的 viewbox。但是这时 svg 已经被优化成了 base64,导致报错,整个编辑器渲染崩溃。我看到 UmiJS4 引入了 svgo,并且它正好是将 svg 优化成 base64,禁用了 svgo 之后,仍然有问题,于是就先入为主认为是 UmiJS4 带来的新 BUG。最终大佬出场,写了一个 chainWebpack,完美解决问题。详见: https://github.com/umijs/umi/discussions/9342 讨论。
最终一个可以正常显示编辑器的示例源码见: https://github.com/JeffTrain/umijs-ckeditor5,部署在了 gh-pages 上,可以通过 https://umijs-ckeditor5.brickverse.dev/home 访问在线体验。