Это, похоже, результат серьезного плохого тестирования и документирования авторами canvg. Строка, в которую выдается ошибка, была введена как часть запроса на извлечение , который предположительно добавил поддержку для выполнения canvg в среде узла. Но похоже, что он был протестирован на работу, только если он использовался в качестве зависимости в node-svg2img .
Если вы посмотрите на этот источник, вы найдете следующее (отрывок):
var canvg = require('canvg'),
Canvas = require('canvas');
function convert(svgContent) {
var canvas = new Canvas();
canvg(canvas, svgContent, { ignoreMouse: true, ignoreAnimation: true, ImageClass: Canvas.Image });
return canvas;
}
Как видите, canvg
вызывается с опцией ImageClass
, которая никогда не документировалась и чье содержимое зависит от модуля canvas , который никогда не указывается в качестве зависимости для canvg. (И это не легкий, это полная реализация <canvas>
.)
Теперь вы никогда не заявляли, что делаете все это в узле, но я предполагаю, что вы делаете, иначе я бы не понял, почему вообще была вызвана строка, вызывающая ошибку.
Кажется, успешный вызов document.createElement('canvas')
не означает, что у вас установлен модуль canvas
. Эта заметка в документе JSDOM говорит вам, что нужно сделать.
Оттуда, набрав canvg
в вашем коде с
import Image from 'canvas';
canvg(canvas, xml, {ImageClass: Image});
побежит.