banyudu / kedao

React 编辑器,从 braft-editor 修改而来,基于 draft-js 实现

Home Page:https://kedao.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

支持在 Next.js 中使用

banyudu opened this issue · comments

commented

在 create-react-app 之外,再提供一个 Next.js 中使用的 demo。

相关代码分支: next

涉及到如下方面的工作:

  • 添加一个 npx create-next-app --ts 生成的 demo
  • 适配 Next.js 中不允许引入全局样式的问题
  • 修正可能存在的 SSR 问题
  • 修正其它可能存在的问题
commented

Next 分支中已经支持了 Next.js,将在下一个大版本 1.x 中发布。

本次改造后 node_modules 中会有 *.module.css 的样式文件,Next.js 默认也不支持,需要使用 next-transpile-modules 处理。

示例配置:

// next.config.js
const withTM = require('next-transpile-modules')(['kedao']);
module.exports = withTM({
  reactStrictMode: true,
});

CRA 需不需要类似的操作?

commented

CRA 需不需要类似的操作?

最新版本的 CRA 默认支持 node_modules 中的 *.module.css 文件,不需要额外处理。目前还没有测试能支持到什么版本。

不过 1.x 版本里面加了一些其它的破坏性更新,需要做一些适配或测试的。

针对 @cloudbase/weda-ui 来说,需要注意的有:

可能有 BUG

  1. className 从 bf-* 换成了 kedao-*,影响 @cloudbase/weda-ui 中的 RichTextImg 组件
  2. 内置控件启用了懒加载
  3. language 文件懒加载 (开发中)
  4. CSS Module

功能变化

  1. 一些控件如 Emoji Picker 计划采用外部依赖,提供更友好的交互(开发中),会影响到功能 #35

这次 1.x 版本中删除了大量的对外暴露的 API / Props(不包括已经被 @cloudbase/weda-ui 使用到的),以后需要的话会换种方式加回来。

另外,有没有使用 @cloudbase/weda-ui 的 demo 项目,可以用来做测试?本次的人工测试及后续计划添加的单元测试希望能把 @cloudbase/weda-ui 加进去。

weda-ui 里没有什么特殊用法其实就是一个接HTML string的受控组件。要说一个比较hack就是的地方就是blockRenderFn定义了 特殊的图片渲染。就是RichTextImg

然后用这里的方法绕了一下同样的报错jpuri/react-draft-wysiwyg#609