#51672023年6月6日作者 KevenDvorianoff2 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 全部可复制演示链接 没有描述一下那个虫子 按照使用TypeScript创建插件的文档,并使用“usePlugin”功能将插件导入编辑器,浏览器显示以下错误: 看起来函数声明不在节点模块的压缩 js 中。行为准则[x] 我同意遵守本项目的行为准则
GJS Helper
GrapesJS 中的 TypeError: g.usePlugin is not a function 错误通常源于对插件注册和加载方式的误解,特别是将全局 grapesjs 库对象与 editor 实例混淆。 根本原因 TheThe usePlugin 方法是主 grapesjs 库对象的静态方法,不是editor对象的实例方法。它的目的是以特定 ID 全局注册一个插件,并以特定 ID 与 GrapesJS 库进行,以便以后可用。你错误中的gg.usePlugin is...
#51492023年5月29日作者 jchautreux4 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 全部都没有,bug出在构建过程中 可复制演示链接 没必要 描述一下那个虫子 如何复现这个漏洞? 使用 NPM 安装 GrapesJS 以便在 TypeScript 项目中使用。 根据文档,要设置非命名插件的选项,我们必须定义如下 init: 预期的行为是什么? 项目建设顺利进行 目前的行为是什么? 该版本因以下错误而失败: A computed property name must be of type 'string', 'number', 'symbol', or 'any'. 供参考 我们可以使用命名插件,但这种做法是将“弃用”标记为...
artf
这似乎和 https://github.com/microsoft/TypeScript/issues/35945 有关 作为一个临时的变通方法,你可以先这样做: “''js pluginsOpts: { [myPlugin.toString()]: { customField: 'customValue' } }
artf
添加了辅助工具[这里](https://github.com/GrapesJS/grapesjs/commit/7d5d074e4d2735245541bfcbaad666e7bc37ea56)(我稍后也会更新文档中的使用情况)
#51482023年5月29日作者 jchautreux4 个回答
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 全部都没有,bug出在构建过程中 可复制演示链接 没必要 描述一下那个虫子 如何复现这个漏洞?创建一个空白项目使用 NPM 安装GrapesJS和插件(本例中为预设网页,但对所有官方插件“有效”)使用import GrapeJS from 'grapesjs'加载GrapesJS 尝试用import plugin from '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 个回答
GrapesJS 版本 [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
网站上的文档说给出的参数只能是具有以下属性的对象 抱歉,你具体在哪里读到这句话?
GJS Helper
感谢你举报并提醒我们。确保类型定义与文档之间的清晰非常重要。 在查看了GrapesJS v0.21.1 源代码和文档后,似乎并没有差异,而是对 TypeScript 类型定义的潜在误解PanelManager.addPanel。 理解类型定义 PanelManager.addPanel方法(定义在src/panels/index.ts#L82(v0.21.1)中具有以下特征: 让我们来拆解一下“Panel”和“PanelProps”的含义: Panel:这指已经实例化的Gr...
#51122023年5月14日作者 putzwasser4 个回答
GrapesJS 版本 [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 变得坏掉或没用。 我试过禁用Brave Shields和无痕模式,确保没有干扰JS。结果一样 如何复现这个漏洞?打开 grap...
artf
通过用同一个 Brave 版本(Mac 版)检查,拖放功能似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 如果有其他人有类似经历或对这个问题有更多了解,请告诉我们。
gxanshu
我在Tauri上也遇到同样的问题。他们用的是WebGTK,拖放功能也没用
putzwasser
通过用同一个 Brave 版本(Mac 版)检查,拖放功能似乎正常,所以看起来不像是 GrapesJS 本身或浏览器的问题。 我觉得这不是一个有效的检查。你用Mac得到了完全不同的设置。我本以为这个问题可能和我具体的配置有关,但这并不意味着 grapesjs 方面没办法。 我不指望你去解决,因为这可能是个角落问题,资源有限。也许这甚至和在Wayland上使用Brave有关。
#50532023年4月17日作者 ngoc1992 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? FireFox 112.0(64位) 可复制演示链接 没有演示链接 描述一下那个虫子 我最近从v0.20.1升级到了v0.21.1。 很多在 v0.20.1 中存在的类型在 v0.21.1 中被改成了 any 。 例如, v0.20.1 中的 Components.addType 类型是 AddComponentOptions ...
artf
谢谢@ngoc199如果之前版本还有其他缺少声明的话,请告诉我
GJS Helper
这是与GrapesJS v0.21.1中TypeScript声明文件(.d.ts)相关的已知问题。问题的出现是因为某些核心功能的类型定义,如Components.addType和自定义组件中的model定义,在该版本中生成不完整或错误,导致TypeScript推断出这些类型的any。 根本原因 GrapesJS 主要使用 JavaScript 编写,但它提供了 TypeScript 声明文件,以提供类型安全和更好的开发者体验。在 v0.21.1 中,这些 .d.ts 文件出...
#50002023年3月22日作者 applibs2 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬111 可复制演示链接 https://jsfiddle.net/zfkuq7sh/ 描述一下那个虫子 有些文本会被翻译,有些不会。有些只有在我点击某个工具按钮后才会被翻译,然后才会被翻译。 比如顶部栏按钮Sestins。它是英文版,点击这个按钮后它会被翻译成我的母语。 为什么?行为准则 [X] 我同意遵守本项目的行为准则
artf
@applibs如果没有提供有效且可复现的演示,我帮不上忙,请包含所有缺失的依赖。
GJSBlock
谢谢你举报,@applibs。 本地化工作怪怪的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中包含 Gr...
#49622023年3月7日作者 himansh-gjr1 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 任何 可复制演示链接 不 描述一下那个虫子 我相信文档中许多 configuration objects 链接仍然是指向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] 我同意遵守本项目的行为准则
GJSBlock
感谢你的报告,@himansh-gjr。 文档中链接损坏的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在报告中...
#49372023年2月20日作者 besart-k2 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 版本 110.0.5481.100(官方版本)(arm64)可复制演示链接 没有描述一下那个虫子 我试图在 React 中复制像这个例子 [Vue 块管理器](https://jsfiddle.net/artur_arseniev/xyofm1qr/)那样自定义块管理器,但“block:custom” 回调没有被调用。 如何复现这个漏洞? 把它放在初始配置中 'blockManager: { 方块:方块, 自定义:真实 }, 把这个放进 useEffect useEffect(()=>{ editor.on('block:cust...
artf
@besart-k,你必须提供一个可复现的演示,因为如果它能和当前的Vue演示示例兼容,React中也不应该有不同。也许你用的是旧版的 Grapesjs,或者在 React 应用里做错了什么,所以在这种情况下,可复现的演示是必须的。 我决定关闭这个版本,因为演示本身使用的是最新版本,似乎对自定义方块能正常工作。
GJSBlock
谢谢你举报,@besart-k。 关于block:custom在React上不工作的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something...
#49292023年2月14日作者 handhikadj4 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 最新动态可复制演示链接 https://codesandbox.io/s/interesting-bell-xntbtr描述一下那个虫子 如何复现这个漏洞?进入代码沙盒拖放自定义代码块。将此代码放入自定义代码编辑器中,点击保存:点击按钮。点击按钮时应该打开 href 链接,但实际上并没有。注意到按钮标签里的 a 标签被移除了 预期的行为是什么? <a> 标签不会被移除行为准则[X] 我同意遵守本项目的行为准则
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”方法,但你应该考虑如何正确处理内联文本编辑。