You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

remirror使用YjsExtension时WebrtcProvider类型不匹配如何解决

问题根因

这个类型报错是多版本yjs类型冲突导致的:从错误日志可以看到,你的项目根目录node_modules中安装了独立的yjs依赖,同时remirror包自身也内置了另一版本的yjs依赖,两个版本的类型定义不匹配,导致WebrtcProvider关联的yjs类型和YjsExtension要求的YjsRealtimeProvider关联的yjs类型无法兼容。

解决方案

方案1:强制统一yjs版本(推荐)

在package.json中添加版本锁定配置,强制所有依赖使用同一版本的yjs:

  • 如果你使用npm >=8.3.0,添加overrides配置:
{
  "dependencies": {
    // 你原有依赖保持不变
  },
  "overrides": {
    "yjs": "^13.5.22"
  }
}
  • 如果你使用yarn v1,添加resolutions配置:
{
  "dependencies": {
    // 你原有依赖保持不变
  },
  "resolutions": {
    "yjs": "^13.5.22"
  }
}

配置完成后,删除项目的node_modules文件夹、package-lock.json(或yarn.lock)文件,重新执行依赖安装命令即可。

方案2:临时类型断言绕过

如果不想改动依赖版本,可直接对provider做类型断言绕开类型校验:

new YjsExtension({ getProvider: () => provider as unknown as import('remirror/extensions').YjsRealtimeProvider }),
// 简化写法也可直接断言为any:
// new YjsExtension({ getProvider: () => provider as any }),

注意该方案仅跳过类型检查,没有解决本质的版本冲突问题,仅建议临时调试使用。

方案3:升级remirror版本

你当前使用的remirror@1.0.43是较老的版本,升级到remirror的最新稳定版,内置的yjs依赖版本已经和主流yjs、y-webrtc版本兼容,也可解决该冲突。

内容的提问来源于stack exchange,提问作者Shamim Fahad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 22:15:07