GrapesJS 问题

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

找到 30 个问题

🔍 undo-manager
#67042026年2月13日作者 mehdimoslehi2 个回答
0 个反应

编辑器崩溃,模板无法加载(TypeError 读取类型)

GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 143.0.7499.193 可复制演示链接 https://app.rechat.com/dashboard/marketing/history/Letter?printCampaignId=28f0587d-8738-4fd6-8087-da3167f6d737&action=edit 描述一下那个虫子 如何复现这个漏洞? 打开 Rechat Studio 编辑器,尝试加载/打开这个模板:https://app.rechat.com/dashboard/marketing/history/Letter?printCam...

artf

请提供一个独立且可复现的演示,原因看起来来自你的代码逻辑,而非核心

ClaudeCode

谢谢你举报,@mehdimoslehi。 关于编辑器崩溃和模板无法加载(TypeError读取类型)的问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => consol...

#66962026年2月4日作者 jasonvijayy1 个回答
0 个反应

在启用UndoManager的生命周期事件中调用component.replaceWith()时崩溃

GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Logeshwaran-codepen/pen/raLJpYb 描述一下那个虫子 如何复现这个漏洞? 选择canvas中可用的组件。监听生命周期事件(例如 component:selected) 在事件处理程序内调用component.replaceWith() 执行撤销 预期的行为是什么? Undo 应安全恢复编辑器状态且无错误,GrapesJS 应提供支持的生命周期事件中替换组件的方法。 目前的行为是什么? 撤销崩溃是因为GrapesJS试图恢复一个已不存在组件的选择/状态。 问题...

ClaudeCode

谢谢你举报,@jasonvijayy。 关于在启用UndoManager时调用component.replaceWith()时调用component.replaceWith()时崩溃的好问题。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript...

#66872026年1月13日作者 rhaarhoff1 个回答
0 个反应

依赖:主干撤销已弃用(NPM)——有什么替代方案吗?

GrapesJS版本 0.22.14(最新版本截至2025-11-20) 预期的行为是什么? GrapesJS 安装树中没有弃用依赖(或替换指南/路线图)。 现在的行为如何? 安装[email protected]会发出npm/pnpm弃用警告,因为它依赖于[email protected](在npm上弃用)。 繁殖步骤 PNPM [email protected](或 NPM I [email protected]) 注意主干网[email protected]的弃用警告 补充背景 这本身不是漏洞报告;这是维护/支持风险(供应链问题)。 相关历史问题:#3443 涉及下划线咨询路径;本报告专门讨论软件包弃用状态。 问题:是否有计划移除或替换骨干...

ClaudeCode

谢谢你举报,@rhaarhoff。 安全和依赖性问题很重要。GrapesJS 团队积极致力于保持依赖系统的更新。 为你现在: 运行“npm审计修复”以查看可用的补丁 查看是否有更新的GrapesJS版本,可能已经解决了这个问题 如有稳定版,升级前先测试最新稳定版 如果漏洞非常严重,可以使用“npm audit fix --force”,但请务必彻底测试 理解风险: 在GitHub安全公告中查看具体漏洞详情 并非所有高严重性问题都会影响你的代码路径 某些漏洞仅在特定条件下触发...

#61712024年9月24日作者 rhoenerSBS2 个回答
0 个反应

:用UndoManager追踪自定义存储

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v129 可复制演示链接 不适用 描述一下那个虫子 你好@artf, 我目前正在用 grapesjs 实现一个编辑器,可以在已有页面旁边添加章节。我实现了一个章节存储,实现了IStorableModule,将章节存储在项目数据中。 我的问题是,让UndoManager跟踪章节更改的最佳方式是什么? 有必要以某种方式扩展ItemManagerModule吗? 行为准则 [X] 我同意遵守本项目的行为准则

artf

大家好@rhoenerSBS请避免打开bug问题。

ClaudeCode

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

#61432024年9月10日作者 rhoenerSBS2 个回答
0 个反应

BUG/[问题]:如何在添加/挂载时正确包装组件?

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v128 可复制演示链接 https://jsfiddle.net/fjyk6n4a/2/ 描述一下那个虫子 你好,@artf, 我目前正在尝试将一个组件包裹在一个截面组件中,如果它还没有被包裹的话。我正在连接 component:mount 事件,并用 section 组件替换新增组件(该组件子节点为新增组件)。 我的代码大致是这样的: “''js editor.on('component:mount', (component) => { if (component.parent().attributes.tagName !== 'b...

jasonvijayy

你好,@artf, [可复制链接](https://codepen.io/Logeshwaran-codepen/pen/raLJpYb) 我用'component.replaceWith()'和UndoManager一起运行时也遇到崩溃。 这只发生在编辑器生命周期事件中触发“replaceWith()” (例如 'change:status', 'component:selected', 'component: deselect') 在撤销时,GrapesJS 尝试恢复旧...

ClaudeCode

谢谢你举报,@rhoenerSBS。 关于BUG/[问题]:如何在添加/挂载时正确包装组件?的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('some...

#61422024年9月10日作者 rhoenerSBS2 个回答
0 个反应

页面重做无法正常工作

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v128 可复制演示链接 https://app.grapesjs.com/studio 描述一下那个虫子 添加页面后,通过撤销删除,再用重做重新添加,页面却无法正常工作。图层管理器在选择页面时不会更新。它也没有之前的内容,而且似乎没有正体,因为无法在那个页面添加新组件。我在本地开发中注意到了这种情况,但因为Grapesjs的工作室版本也出现了,我提交了工作室版本的链接以便复制此问题。 如何复现这个漏洞?打开GrapesJs工作室示例添加页面点击撤销 - >页面从列表中移除点击重做 ->页面再次添加点击重做添加的页面查看行为 预期的行为...

artf

谢谢你的报告@rhoenerSBS

ClaudeCode

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

#60872024年8月24日作者 leo-budgetsimple3 个回答
1 个反应

在组件内部HTML被更改后,撤销功能无法正常使用

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新消息 可复制演示链接 https://jsfiddle.net/condsjm1/ 描述一下那个虫子 如何复现这个漏洞?更改组件的内部HTML按CTRL+Z键 预期的行为是什么? 撤销内容 目前的行为是什么? 但内容不会被撤销 描述: 在小提琴上,按下“切换到Hello Planet”的按钮,然后选择编辑器,按CTRL+Z 撤销和重做都不行,但如果你正常改“Hello World”文本,它就能正常工作。 我觉得我改的内容有问题?如果是这样,如何更改组件内容并模拟原生行为的最佳方式?行为准则 [X] 我同意遵守本项目的行为准则

artf

UndoManager跟踪的是组件状态的变化,而不是它的DOM。 这应该适用于你的情况,'element.components('Hello Planet')'

leo-budgetsimple

@artf 谢谢!

ClaudeCode

谢谢你报告,@leo-budgetsimple。 关于在组件内部HTML更改后撤销功能失效的好问题。推荐的UndoManager方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('som...

#60472024年8月7日作者 danstarns1 个回答
0 个反应

释放流程

GrapesJS 仓库构建工件发布过程中存在以下问题: 工件应直接来自开发者的机器。- https://github.com/GrapesJS/grapesjs/pull/6041 该过程没有文档 我们有多个软件包要发布,也需要完善的文档。该工单旨在标准化并记录 GrapesJS OSS 仓库的发布流程,使其与行业标准工作流程保持一致。这项工作将确保所有贡献者的一致性、可靠性和易用性。

ClaudeCode

谢谢你举报,@danstarns。 关于发布流程的建议真棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细致跟踪 构建一个插件...

#57422024年3月11日作者 bernesto4 个回答
2 个反应

在Windows 10+上构建

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v122 可复制演示链接 无 描述一下那个虫子 如何复现这个漏洞?将git检查到Windows 10+机器上按照提供的流程构建。 预期的行为是什么? 它应该和*inx系统一样建造。 目前的行为是什么? 该构建因引用 Backbone 的错误而失败: “嘘 警告内容见./src/common/index.ts 35:2-16 导出“default”(导入为“Backbone”)在“backbone”中找不到(模块没有导出) @ ./src/editor/view/EditorView.ts 16:0-39 45:21-22 68:2-6...

bernesto

是的,我做了所有常规的事情。锁定文件、更新、各种导入方式({}、require、*、full path 等) 不知道为什么,但我弄坏东西的时候,会弄得很厉害。永远是2级或3级辅助,哈哈。 我确实认为问题出在CLI,或者......配合 Backbone-Undo。也许是路径相关的,或者是符号链接,或者...... ̄\(ツ)/ ̄ 总之,我明白“时间”的含义。我已经花了太多时间了,如果你有兴趣告诉我,哈哈

bernesto

说得好。我还没试过其他版本的Node。我会试试这个方法。

artf

是的,构建/服务是由CLI管理的(我们把问题移到那里),但我不确定问题出在哪里(因为没有Windows可以测试🥲)。

#56912024年2月21日作者 codei202 个回答
0 个反应

通过颜色选择器切换背景或文本颜色时,撤销不工作

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 122.0.1 可复制演示链接 https://grapesjs.com/demo-mjml.html 描述一下那个虫子 如何复现这个漏洞? 官方演示版:https://grapesjs.com/demo-mjml.html在画布上添加一列选择章节进入装饰区,在颜色选择器中选择背景色(注意:不要点击确定按钮)。步骤3后,点击撤销按钮,但不要点击其他地方。 预期的行为是什么?点击撤销按钮后,背景颜色应恢复到之前的颜色 目前的行为是什么?背景色保持不变。 同样的行为也出现在文字颜色上。行为准则 [X] 我同意遵守本项目的行为准则

artf

这大概和mjml插件有关,不是核心,因为我无法复现它(建议你打开相关仓库的问题)。

ClaudeCode

谢谢你举报,@codei20。 关于在通过颜色选择器切换背景或文本颜色时取消功能的问题非常好。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somethin...

浏览所有主题