Правильный импорт v3 из JointJS - PullRequest
0 голосов
/ 08 июля 2019

При работе с JointJS версии 2.2.1 я импортировал его так:

import { default as joint } from "jointjs";

Сейчас я работаю с версией 3.0.2. "соединение" из строки выше не определено. Импорт больше не работает. Я заметил в примечаниях к выпуску JointJS 3.0.0:

Заметные изменения - полная поддержка модулей ES

Как мне импортировать его сейчас?

1 Ответ

1 голос
/ 09 июля 2019

импорта по умолчанию больше нет, import * as joint from 'jointjs' работает просто отлично.Если вам нужен меньший комплект, вы можете выбрать нужные вам детали:

import { dia } from 'jointjs/src/core.mjs';
// import shapes you need 
import * as standard from 'jointjs/src/shapes/standard.mjs';

const graph = new dia.Graph([], { cellNamespace: { standard } });
new dia.Paper({
    cellViewNamespace: { standard },
    el: document.getElementById('paper'),
    width: 500, height: 500,
    model: graph
});

const rectangle = new standard.Rectangle().size(200, 200).position(100, 100).addTo(graph)

Обратите внимание, что вам нужно быть осторожным с cellViewNamespace для опции dia.Paper и cellNamespace для dia.Graphв этой настройке.В противном случае вы можете встретить запуск Uncaught Error: dia.ElementView: markup required error

, этот фрагмент - быстрая проверка правильности настройки пространств имен:

const cells = JSON.stringify(graph.toJSON());
graph.clear();
graph.fromJSON(JSON.parse(cells));
...