2015-11-23 2 views
1

Я новичок в requirejs. Я создаю приложение. Моя проблема в том, что меня беспокоит конфликт между версией requirejs с использованием моего приложения и версии requirejs, уже запущенной на странице.Загрузите два приложения requireJs на одной странице

Чтобы проверить эту проблему, я создал два приложения, используя две разные версии. Я печатаю номер версии в обоих приложениях.

Структура каталогов

/require 
-/libs 
--require.js(version 2.1.19) 
-main.js 
/require-test 
-/libs 
--require.js(version 2.1.20) 
-main-test.js 

Я использовал следующий код для запуска оба приложения

<script type="text/javascript" src="/require-test/libs/require.js" data-main="/require-test/main-test" ></script> 

<script type="text/javascript" src="/require/libs/require.js" data-main="/require/main" > </script> 

Оба require.js файлов получает нагрузку. Проблема только в том, что приложение-приложение требует проверки. Он печатает правильную версию require.js. Если я переключу порядок приложений. Первое приложение получает нагрузку каждый раз. Что такое конфликт? Как решить эту проблему?

+0

Вы не можете загрузить одну и ту же библиотеку дважды, на одной странице. – Cerbrus

+0

@Cerbrus Есть ли обходной путь для этого? У меня есть родное приложение. Будет конфликт на веб-страницах, которые уже запускают приложение requirejs на своей странице. – NeiL

ответ

0

Внутри серии 2.x я не помню, как работает случай, когда что-то, что работало в предыдущей версии, не работало в более новой версии. Поэтому не должно быть никаких проблем с загрузкой всего кода с последней версией в серии 2.x.

Что может стать проблемой, если два приложения используют значительно разные версии одной и той же библиотеки (например, jQuery 1.3 vs 2.x). Решением для этого является использование contexts.

1

Используйте сценарий require один раз, а в файле «data-main» слияние данных конфигурации, чтобы он загружал необходимые материалы для обеих библиотек в одном файле.

+0

У меня нет контроля над приложением requirejs на странице пользователя, я могу изменить код только в своем приложении. Поэтому для обоих приложений требуется собственный скрипт require. – NeiL

+1

Я думаю, что тогда проблема, вы должны иметь единоличный контроль над тем, как вы используете требование для своего приложения. Я не думаю, что требуется поддержка с несколькими базовыми URL-адресами. – Jay

Смежные вопросы