PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

GrapesJS 问题

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

找到 743 个问题

🔍 bug
#51562023年5月31日作者 loclovepop3 个回答
0 个反应

手机屏幕上拖放连添加 grapejs-touch都做不到

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome,IOS可复制演示链接 https://www.lovepoptestsite.com/products/disney-s-hocus-pocus-black-flame-candle-pop-up-card?variant=40356218077273&preview_link=124907487321 密码:ilovecards描述一下那个虫子 如何复现这个漏洞? 我试过用手机屏幕单独拖拽 grapejs 编辑,一切都没问题。但当我尝试在注入编辑器测试存储后这样做时,效果并不如预期。 预期的行为是什么? ...它应该允许拖放组件...

loclovepop

[screencast-www.lovepoptestsite.com-2023.06.01-001711.webm](https://github.com/GrapesJS/grapesjs/assets/124012807/a171fbbb-dd8b-45a6-901c-d0c2519c8304) 这是关于bug的视频

artf

我看到触摸插件是正常工作的,确保加载时启用移动设备(比如加载后不要模拟),这样聚合物填充才能正确加载。

GJS Helper

你遇到的拖放功能在移动屏幕上无法正常工作的问题,尽管GrapesJS嵌入在你的“测试商店”环境中,尽管使用了grapesjs-touch,这在复杂的网页应用中很常见。这通常源于CSS冲突或事件处理干扰,扰乱了GrapesJS的基于触摸的拖拽逻辑。 根本原因解释: 当GrapesJS独立运行时,它对DOM和CSS拥有完全控制权。然而,当嵌入时,尤其是在像“测试商店”这样的平台上(它很可能拥有自己的全局样式、脚本和事件监听器),这些可能会干扰GrapesJS预期的行为。特别是触...

#51542023年5月31日作者 jmtt894 个回答
6 个反应

TS2416:类型为“PropertyStack”中的属性“_up”不可分配给基类型“PropertyComposite”中的同一属性<PropertyStackProps>

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? ---- 可复制演示链接 https://codesandbox.io/p/sandbox/pensive-browser-mfhxp8 描述一下那个虫子 如何复现这个bug?创建Angular项目添加grapeJS依赖关系在TSCONFIG中包含"allowSyntheticDefaultImports": true(用于骨干网)为GrapeJS 创建包装组件 在项目中使用包装组件 预期的行为是什么? 渲染GrapeJS编辑器目前的行为如何? 构建时就坏了 行为准则 [X] 我同意遵守本项目的行为准则

marktamis

我把一些tsconfig设置从一个正在运行的vite gjs项目复制到我的stenciljs项目里,现在它运行正常了。我觉得你需要对你的 Angular TSCONFIG 做些调整,这样它就不会再抛出错误了 下面是我正在运行的 Stencilsjs TSCONFIG: 似乎正是这个功能让编译成为可能的原因

Deepakanandrao

“skipLibCheck”:true, “skipLibCheck”: true “”成功了。谢谢@marktamis 👍

artf

是的,在我找到该TS输出😞的修复之前,这里需要用“skipLibCheck”: true”

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

无名插件和选项

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' } }

jchautreux

听起来是个好主意

artf

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

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

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

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 个回答
1 个反应

PanelManager.addPanel 的类型定义错误

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...

#51412023年5月24日作者 rajevar3 个回答
1 个反应

组件在更新性状时重置属性值(仅首次)

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 113.0.5672.63 可复制演示链接 https://jsfiddle.net/rajevar/zLs8q97f/4/ 描述一下那个虫子 这是针对本次讨论 https://github.com/GrapesJS/grapesjs/discussions/4759 如何复现这个漏洞? https://jsfiddle.net/rajevar/zLs8q97f/4/从块中选择Text CAT:Basic组件,拖曳到画布。HTML 步骤1之后的代码 <div class="text-primary" id="ixci">...

rajevar

抱歉,是我错了。我没用最新的。

artf

@rajevar我无法用最新版本复现,你确定你用的是最新版本吗?

GJS Helper

你发现了GrapesJS中常见的与组件属性管理方式相关的同步问题,尤其是在通过样式管理器修改类,然后其他特征(如id或title)首次更新时。这种行为确实可能导致类意外丢失。 根本原因解释 问题的核心在于组件DOM元素上的实际class属性与组件内部attributes模型属性之间的暂时不同步。以下是分解: 初始组件状态: 当组件首次添加到画布时,其初始属性(包括class和id)会同时设置在DOM元素和组件的内部attributes模型属性上。 通过样式管理器进行类修改:...

#51352023年5月22日作者 duclet2 个回答
0 个反应

StyleManager.addProperty 的类型定义错误

GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 全部 可复制演示链接 没有 描述一下那个虫子 如何复现这个漏洞?根据这里的定义:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/index.ts#L304,你应该提供optionsPropertyProps的选项。然而,这里定义的PropertyProps:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/model/Property.ts#L9,并不具备此类属性。这导致TS编译器发出了投诉。...

SachinPuthiyoth

看起来 StyleManagerConfig.sectors 中的类型定义没有变化 : https://github.com/GrapesJS/grapesjs/blob/5c890449a52f526bc480d6dc649ff5e01ec59140/src/stylemanager/config/config.ts#L8 我们是不是应该更新它,使用像 PropertyTypes 这样的功能: https://github.com/GrapesJS/grapesjs/bl...

GJS Helper

感谢您报告此问题。在查看GrapesJS源代码,特别是 dev 分支和最新的稳定版本(0.21.10时),发现 PropertyProps 接口确实包含了 options 属性。因此,StyleManager.addProperty 的类型定义应是正确的,允许你在 PropertyProps 对象中提供options而不会导致 TypeScript 编译器错误。 让我们澄清当前类型的定义: 1.PropertyProps 接口 PropertyProps接口定义于src/s...

#51342023年5月20日作者 yashvi20261 个回答
0 个反应

用命令启用默认的RTE

GrapesJS 版本 [x] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 我想用一个命令触发rte,我找到了enableEditing但不起作用,有没有命令可以触发RTE吗 行为准则 [X] 我同意遵守本项目的行为准则

GJS Helper

你遇到的问题是, enableEditing 并不是一个用于程序触发富文本编辑器(RTE)的公开命令或方法 GrapesJS。 GrapesJS 中的 RTE 通常在选择并聚焦某个文本组件时会自动启用。不过,你可以通过创建自定义命令,直接与组件的 RTE 实例交互来实现程序激活。 根本原因 GrapesJS的 RichTextEditor 模块管理 RTE 实例。当选择文本组件时, GrapesJS 内部检查是否可编辑,然后启用其关联的 RTE。没有像 enableEdit...

#51312023年5月20日作者 sdimitrenco2 个回答
0 个反应

JSON.stringify 之后,组件并非所有字段都存在

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://jsfiddle.net/sdimitrenco/rn8u4pc0/7/描述一下那个虫子 我不确定这是不是bug,但对我来说,这种行为看起来很奇怪 我有一个组件列表,包含组件ol和组件LI。 那个代码,代表阻挡 组件列表的模型 这个模型用于 ol 分量 以及锂分量的模型 如你所见,所有模型都包含类型和标签名称,内部 grapes 正常,但如果我尝试转换成json,比如JSON.stringify(this.grapesInstance.getComponents()),我有个带有标签名的json缺失所有字段,看...

artf

如果属性的值与默认定义相同,则跳过。这由 ['avoidDefaults'](https://github.com/GrapesJS/grapesjs/blob/e217dc75d463a84333ee4d9f37216f4f56c77024/src/editor/config/config.ts#L250-L256) 配置选项控制,强烈建议尽量保持 JSON 小。

GJS Helper

这种行为不是bug,而是GrapesJS内部的有意优化,利用了Backbone.js模型。当你将GrapesJS组件序列化为JSON时,通常会省略与该组件类型默认值相符的属性,以减少序列化数据的大小。 根本原因 默认值优化:GrapesJS组件是骨干模型。当调用模型的toJSON()方法(JSON.stringify隐式使用)时,通常只序列化那些与模型定义的defaults值不同的属性。这是保持数据负载精简的常见模式。 你的自定义组件(list,ol,li):你在defau...

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

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

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有关。

浏览所有主题