JointJS нуждается в Jquery в качестве своей зависимости. К сожалению, Jquery нарушает работу моего приложения ExtJS. Есть обходной путь?

#jquery #extjs #jointjs

#jquery #extjs #jointjs

Вопрос:

Я заметил, что JointJS имеет jQuery в качестве своей зависимости. Мое приложение построено на ExtJS v3. Это довольно старое приложение. Когда я пытаюсь включить в него тег с расположением Jquery v3.5.1 cdn, я замечаю, что он где-то нарушает мой код ExtJS.

Могу ли я в любом случае включить jQuery для работы JointJS, не нарушая работу моего приложения ExtJS?

В настоящее время это то, что я пытаюсь.

     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.20/lodash.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.4.0/backbone.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jointjs/3.3.1/joint.js"></script>
 

Комментарии:

1. У меня нет опыта работы с этой старой версией, но если в вашем файле есть часть, начинающаяся с "js": [ app.json , вы можете попробовать добавить новый элемент в этот массив, например {"path": "https:/...."} .

Ответ №1:

Нам может помочь, если вы опубликуете свой нерабочий полный код.

В настоящее время, похоже, существуют зависимости между JointJS и jQuery, см. https://github.com/clientIO/joint/issues/127

Для предотвращения конфликтов между jQuery и другими библиотеками, такими как Extjs, обычным способом является замена $() на jQuery() .

У вас также есть «радикальный» способ инкапсулировать ваше приложение JointJS в «iframe» внутри вашего приложения Extjs. Это не очень чистое решение, но оно будет работать.

Комментарии:

1. К сожалению, я не могу опубликовать код для справки. Я изучил зависимость JointJS и Jquery. В последнем JointJS есть ссылки на Jquery как $ . Я обнаружил, что если я использую jquery.noConflict(), а затем использую jquery вместо $ в JointJS, все работает.