bpmn-js(和diagram-js)允许包含可选模块,增强当前功能。
示例: Modeler.js (from line 174, commit [ae96f37] 1)
Modeler.prototype._interactionModules = [
// non-modeling components
require('diagram-js/lib/navigation/movecanvas'),
require('diagram-js/lib/navigation/touch'),
require('diagram-js/lib/navigation/zoomscroll')
];
现在,为了概述某些模块,我现在必须查看两个模块的文件夹(bpmn-js
中的diagram-js
,node_modules
)以查看整个模块可能的模块列表:
Example 1: bpmn-js/lib/features/*
(提交:b03014f)
Example 2: diagram-js/lib/*
(提交:7956c81)
但是,如果我想要更模块化的Modeler设计(例如添加/删除功能,具体取决于用户角色),我需要具备一些功能,将可用模块公开给我的应用程序。像
这样的东西Modeler.modules() // list all module names
Modeler.addModule(name) // adds this module
Modeler.removeModule(name) // removes this module
到目前为止,我已经搜索了bpmn-js
repo的代码,但没有发现暴露这些模块的属性/方法/ API。
我刚刚找到了一种方法来搜索节点模块的目录以获取所需的文件夹(/lib/*
),但这对我来说似乎很奇怪,因为由于重构,这个结构可能会随着下一个版本而改变,重新设计等。
我是否真的坚持编写自己的实现或者是否有人成功地解决了这个问题? (隐式暴露可用模块的任何“隐藏”属性?)