【发布时间】:2020-12-14 14:48:02
【问题描述】:
我正在使用SVG.js,documentation 描述了一种扩展库中类的方法,以便为扩展该类的所有对象添加额外的功能。
我想出这个例子来为任何继承自 SVG.Element 的对象提供一个红色边界框。
import * as SVG from '@svgdotjs/svg.js';
SVG.extend(SVG.Element, {
bounding_box: function(margin) {
var bbox = this.bbox()
return this.parent().rect({
x: bbox.x - margin/2,
y: bbox.y - margin/2,
width: bbox.width + margin,
height: bbox.height + margin
})
.stroke("red")
.attr("fill-opacity", 0)
}
})
但是,尽管这可行,但在运行时发生这种情况的事实不允许 vscode 为继承自 SVG.Element 的对象提供此功能的智能建议。同样,我无法提供任何人使用此功能文档此功能。
我试图更改 node_modules/@svgdotjs/svg.js/dist/svg.node.js 文件以及 node_modules/@svgdotjs/svg.js/src/elements/Element.js Element 类的主体 以包含我的功能,但在尝试使用它时出现错误说函数不存在。
我更愿意为open source project on github 做出贡献,但在我弄清楚这些该死的文件以及实际可行的方法之前,我恐怕没有用处。
为了将新功能写入库的SVG.Element 类,我需要更改哪个文件?我是否需要克隆 repo 并进行重建?
我以前从未做过开源,所以这对我来说是第一次。干杯。
【问题讨论】:
标签: javascript node.js svg svg.js