Converse.js 9.1.1自定义插件开发疑问求助
问题解答
1. 为什么http-auth插件不需要import语句?
http-auth这类社区插件是基于Converse.js已挂载到全局window对象的场景编写的,当插件在页面中通过脚本标签引入或者作为Converse构建流程的一部分运行时,converse已经是全局可用的变量,因此不需要import。
你在WebStorm里收到“converse未定义”的提示,是因为编辑器识别不到这个全局变量。不用加import,直接在代码顶部加一行全局变量声明就能解决:
/* global converse */
这样既符合社区插件的写法,也能消除编辑器的报错提示。
2. 插件放在src/plugins/Hello-World目录是否正确?
如果是本地开发调试自定义插件,这个位置是合理的——Converse的核心插件本身就存放在src/plugins目录下,放在这里方便和核心代码一起调试。但如果是打算做成独立的社区插件,更推荐放在项目外部的单独目录,避免和Converse核心代码混在一起,方便后续打包和分发。
3. 修改converse.js添加导入语句是否合理?
完全不合理。修改核心文件会导致后续升级Converse时出现代码冲突,而且违背了插件架构的设计初衷。
正确的加载方式有两种:
- 页面加载:在页面中引入你的插件脚本(要放在Converse.js之后),然后在
converse.initialize的配置里把Hello-World加入plugins白名单。 - 自定义构建:如果用Converse的自定义构建流程,只需在构建配置文件(比如webpack配置或自定义入口文件)中导入你的插件,不需要修改核心的converse.js文件。
内容的提问来源于stack exchange,提问作者Wray Ferrell
相关产品推荐
相关产品推荐

