Рассмотрим это:RequireJS - Загрузка модулей AMD как внутри требуют расхода и встроенного
<script src='global.js'></script>
<script src='require.js'></script>
<script>
require(['modular_foo'], function() {
//do stuff
});
... и в боковых global.js у нас есть, среди прочего:
//global.js
$.getScript("modular_bar.js");
, где оба modular_foo и modular_bar - анонимно определенные модули AMD. Используя requireJS, загрузка чего-то вроде выше даст вам нашу любимую ошибку, mismatched anonymous define() modules.
Достаточно хорошо, почему эта ошибка возникает (прочитайте эту страницу, если хотите узнать), но проблема в том, что, если вы не можете выйти из этой ситуации?
Я работаю на установленной платформе, которая постепенно переходит на поток RJS, так как теперь нет возможности использовать как встроенные устаревшие скрипты (некоторые из которых имеют проверку AMD для запуска define()), и наш requireJS точка входа одновременно.
В некоторых случаях я могу просто разместить встроенные скрипты, совместимые с AMD, после загрузки библиотеки require.js, но это не работает, если вам нужно асинхронно загружать другие вещи (modular_bar.js) в зависимости от содержимого DOM. Я мог бы также просто прокомментировать все проверки AMD из файлов, загружаемых извне в RJS, но это мешает им несовместимо с тем, что они загружаются в модульный поток.
У кого-нибудь из нас было такое же впечатление? Как вы смешиваете свои потоки, чтобы преодолеть подобные конфликты?