GrapesJS 问题

已收录 3,464 个 GitHub 问题 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。

找到 183 个问题

🔍 documentation
#51672023年6月6日作者 KevenDvorianoff2 个回答
0 个反应

UsePlugin 不是一个函数

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 全部可复制演示链接 没有描述一下那个虫子 按照使用TypeScript创建插件的文档,并使用“usePlugin”功能将插件导入编辑器,浏览器显示以下错误: 看起来函数声明不在节点模块的压缩 js 中。行为准则[x] 我同意遵守本项目的行为准则

sneddobuilds

我也遇到同样的问题。

ClaudeCode

谢谢你举报,@KevenDvorianoff。 错误 TypeError: g.usePlugin 不是函数 发生在模块尝试访问属性时,尚未完全初始化组件生命周期。这是GrapesJS中常见的竞争条件。 立即解决办法: 如果你控制代码,可以用空检查包裹调用: “JavaScript if (component && typeof component.method === 'function') { 你的准则 } ``` 根本原因分析: 模块在调用你的方法之前不会验证状态。当...

#51492023年5月29日作者 jchautreux4 个回答
0 个反应

无名插件和选项

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 全部都没有,bug出在构建过程中 可复制演示链接 没必要 描述一下那个虫子 如何复现这个漏洞? 使用 NPM 安装 GrapesJS,以便在 TypeScript 项目中使用。 根据文档,要设置非命名插件的选项,我们必须在“init”中定义: 预期的行为是什么? 项目建设顺利进行 目前的行为是什么? 构建失败时出现了以下错误:“计算出的属性名称必须是类型为'string'、'number'、'symbol'或'any'。” 供参考 我们可以使用命名插件,但这种做法是将“弃用”标记为非命名版本 且不能用于官方插件,因为这些插件是无名的行为准则 [X]...

artf

这似乎和 https://github.com/microsoft/TypeScript/issues/35945 有关 作为一个临时的变通方法,你可以先这样做: “''js pluginsOpts: { [myPlugin.toString()]: { customField: 'customValue' } }

jchautreux

听起来是个好主意

artf

添加了辅助工具[这里](https://github.com/GrapesJS/grapesjs/commit/7d5d074e4d2735245541bfcbaad666e7bc37ea56)(我稍后也会更新文档中的使用情况)

#51482023年5月29日作者 jchautreux4 个回答
0 个反应

官方的 GrapesJS 插件都无法与新index.d.ts兼容

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 全部都没有,bug出在构建过程中 可复制演示链接 没必要 描述一下那个虫子 如何复现这个漏洞?创建一个空白项目使用 NPM 安装 GrapesJS 和一个插件(本例为预设网页,但对所有官方插件“有效”)用“import GrapeJS from 'grapesjs”加载 GrapesJS尝试使用'从'grapesjs-preset-webpage'导入插件'加载'preset-webpage'; 预期的行为是什么? 项目正确构建,插件可用 目前的行为是什么? 项目未能建成,因为GrapeJS的 d.ts 发生了变化 供参考 我本可以在每个官方插件里创...

artf

我决定以 https://github.com/GrapesJS/grapesjs/issues/5149 相关为由结束此事

jchautreux

这其实不是同一个问题,在#5149中,bug是关于如何在工具初始化时设置插件选项。 这里的漏洞与项目最后一次更新有关,该更新定义了一个新index.d.ts,但该新代码与之前插件使用方式不兼容

artf

在上一个版本中,'index.d.ts' 插件签名是一样的,所以我不确定你说的是什么变化 https://github.com/GrapesJS/grapesjs/blob/095466c8cc8034e54888d67beef4cb9296c823e4/index.d.ts#L50-L53 你能分享一下组装过程中的具体错误吗?

#51442023年5月25日作者 duclet3 个回答
1 个反应

PanelManager.addPanel 的类型定义错误

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 全部 可复制演示链接 没有 描述一下那个虫子 函数定义如下:https://github.com/GrapesJS/grapesjs/blob/v0.21.1/src/panels/index.ts#L82,需要以完整面板实例或属性数组的形式给出数据。网站上的文档(https://grapesjs.com/docs/getting-started.html#panels-buttons)说给出的参数只能是一个具有属性的对象(本质上是面板属性的部分)。 行为准则 [X] 我同意遵守本项目的行为准则

duclet

@artf - 你没读完整句子。你可以清楚地看到代码本身,它要求作为完整的“面板”对象给出的参数。在你的文档(如链接所示)中,你并没有给它完整的“面板”对象,而是给它一个带有这些项目的对象。你的例子如下: TypeScript 会抱怨的是,分配给它的对象既不是“面板”的实例,也不是对象属性的数组。

artf

网站上的文档说给出的参数只能是具有以下属性的对象 抱歉,你具体在哪里读到这句话?

ClaudeCode

谢谢你举报,@duclet。 PanelManager.addPanel 类型定义错误的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有...

#51122023年5月14日作者 putzwasser4 个回答
0 个反应

GrapeJS/拖放在 Linux 和 Wayland 上的 Brave 上不起作用

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 1.51.110 Chromium:113.0.5672.77(Offizieller 版本)(64位) 可复制演示链接 https://grapesjs.com/docs/getting-started.html#add-blocks 描述一下那个虫子 在Linux、Wayland(Arch Linux和Gnome)上,使用Brave时你不能添加块。如果你拖放方块,松开鼠标后它们会消失,这让GrapeJS变得失效或无用。 我试过禁用勇气护盾和无痕模式,确保没有干扰JS。结果一样 如何复现这个漏洞?打开 Grapejs 文档页面尝试通过拖放添加...

artf

通过用同一个 Brave 版本(Mac 版)检查,拖放功能似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 如果有其他人有类似经历或对这个问题有更多了解,请告诉我们。

gxanshu

我在Tauri上也遇到同样的问题。他们用的是WebGTK,拖放功能也没用

putzwasser

通过用同一个 Brave 版本(在 Mac 上)检查,拖放似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 我觉得这支票不算有效。用Mac会得到完全不同的配置。我本以为这个问题可能和我的具体设备有关,但这并不意味着葡萄那边完全没办法。 我不指望你去解决,因为这可能是个角落情况,资源有限。也许这甚至和在Wayland上使用Brave有关。

#50532023年4月17日作者 ngoc1992 个回答
1 个反应

在 v0.21.1 中,类型被改为“任意”

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? FireFox 112.0(64位) 可复制演示链接 没有演示链接 描述一下那个虫子 我最近从v0.20.1升级到了v0.21.1。 很多在 v0.20.1 中存在的类型在 v0.21.1 中被改成了“任意”。 例如, v0.20.1中'Components.addType'的类型是'AddComponentOptions' ![图片](https://user-images.githubusercontent.com/53241275/232444631-243b6872-1655-490b-b5b4-5c5ad546a315.png) 类型“组件...

artf

谢谢@ngoc199如果之前版本还有其他缺少声明的话,请告诉我

ClaudeCode

谢谢你举报,@ngoc199。 关于类型在0.21.1版本中被改为“任意”的问题,问题非常好。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something chang...

#50002023年3月22日作者 applibs2 个回答
0 个反应

本地化的操作很奇怪

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬111 可复制演示链接 https://jsfiddle.net/zfkuq7sh/ 描述一下那个虫子 有些文本被翻译,有些则没有。有些翻译是我点击某个工具按钮后才翻译出来的。 比如顶部栏按钮Sestins。它是英文版,点击这个按钮后,它会被翻译成我的母语。 为什么?行为准则 [X] 我同意遵守本项目的行为准则

artf

@applibs如果没有提供有效且可复现的演示,我帮不上忙,请包含所有缺失的依赖。

ClaudeCode

谢谢你举报,@applibs。 本地化工作怪怪的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 Gr...

#49622023年3月7日作者 himansh-gjr1 个回答
0 个反应

文档中的链接断裂

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 任何 可复制演示链接 不 描述一下那个虫子 我相信文档中许多“配置对象”的链接仍然是指向JavaScript文件,但代码已经更新为typescript <img width=“1437” alt=“截图 2023-03-07 上午10 44 05” src=“https://user-images.githubusercontent.com/77732259/223326934-2d937ef8-b227-468e-b327-cd278add16c3.png”>行为准则 [X] 我同意遵守本项目的行为准则

ClaudeCode

感谢你的报告,@himansh-gjr。 文档中链接损坏的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中...

#49372023年2月20日作者 besart-k2 个回答
1 个反应

Block:custom 在 React 上无法使用

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 版本 110.0.5481.100(官方版本)(arm64)可复制演示链接 没有描述一下那个虫子 我试图在 React 中复制像这个例子 [Vue 块管理器](https://jsfiddle.net/artur_arseniev/xyofm1qr/)那样自定义块管理器,但“block:custom” 回调没有被调用。 如何复现这个漏洞? 把它放在初始配置中 'blockManager: { 方块:方块, 自定义:真实 }, 把这个放进 useEffect useEffect(()=>{ editor.on('block:custom',...

artf

@besart-k,你必须提供一个可复现的演示,因为如果它能和当前的Vue演示示例兼容,React中也不应该有不同。也许你用的是旧版的 Grapesjs,或者在 React 应用里做错了什么,所以在这种情况下,可复现的演示是必须的。 我决定关闭这个版本,因为演示本身使用的是最新版本,似乎对自定义方块能正常工作。

ClaudeCode

谢谢你举报,@besart-k。 关于block:custom在React上不工作的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something...

#49292023年2月14日作者 handhikadj4 个回答
0 个反应

标签内侧按钮被移除

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 最新动态可复制演示链接 https://codesandbox.io/s/interesting-bell-xntbtr描述一下那个虫子 如何复现这个漏洞?进入代码沙盒拖放自定义代码块。将此代码放入自定义代码编辑器中,点击保存: '''html <button 类=“btn bg-primary text-white”> <a href=“https://www.example.com/” target=“_blank”>点击我</a> </button> ```点击按钮。点击href链接时按钮应该会打开,但实际上并没有。注意到按钮标签里的...

artf

这是因为[Forms插件](https://github.com/GrapesJS/components-forms)中的[按钮实现](https://github.com/GrapesJS/components-forms/blob/6a63e9edb7b085790e90e98acf54accc5f4bd642/src/components.ts#L260),该插件只允许文本节点作为子节点。 如果你移除表单插件,你就能看到“<a>''元素(如果你愿意,也可以用自己的逻辑...

handhikadj

那么按钮的“正常”实现代码是什么? 顺便问一下,为什么你在Forms插件里让按钮那样表现?

artf

如果我没记错,主要原因是内联文本编辑和按钮元素出现问题,所以这种方法是解决常见问题最简单的方法。 我猜“正常”实现是跳过或覆盖“init”方法,但你应该考虑如何正确处理内联文本编辑。

浏览所有主题