Я получаю странный breezejs поведения загрузки в приложении, которое также использует requirejs.Breeze требует нокаута при использовании requirejs
Основная проблема заключается в том, что если мне требуется установить нагрузка бриза (плюс его зависимости q и jquery), бриз не может загрузиться, если нокаут не настроен как зависимость от бриза.
Uncaught Error: Module name "ko" has not been loaded yet for context: _. Use require([])
Это нормально, если я действительно хотел использовать нокаут, но я использую угловой. Я предполагаю, что это не сломает ничего, чтобы загрузить нокаут тоже, но это пустая трата времени для загрузки, если он никогда не будет использоваться.
Итак, мой первый вопрос в том, почему ветер требует нокаута только потому, что я использую requirejs? Кажется, это ошибка.
Другой странное поведение WRT ветер и требуют, что если я загружаю требуется, а затем ветер без использования требуется, то ветер не загружается.
Uncaught Error: Mismatched anonymous define() module...
Кажется, что ветер делает предположение о том, что, если потребуется загружен, что ветер будет нагруженный требуется. Но это похоже на скачок. Я столкнулся с этим вопросом, так как впервые обнаружил предыдущую проблему. Я думал, что просто загружу ветерок сам, вместо того, чтобы потребовать этого. Конечно, по-прежнему требовалась загрузка, поскольку другие части приложения полагаются на необходимость.
Итак, мой второй вопрос: почему же ветер, должны быть загружены до требуют? Просто кажется странным, поскольку две библиотеки не зависят друг от друга. Почему существует требуемый порядок загрузки?
Q обеспечивает функциональность обещания - не AMD. Я не думаю, что между функциями Q и require существует некоторое совпадение. – steve
Я просмотрел (и попытался) использовать 'breeze.config.initializeAdapterInstance ("modelLibrary", "backingStore", true)'.Бриз на самом деле написан для использования backingStore, если KO не загружен - это именно то, что я хочу. Проблема в том, что если я использую для загрузки бриза, ветер не загружается, если я не загружаю KO. Если мне нужно настроить загрузку KO и настроить ветерок для использования backingStore, тогда бриз работает по желанию (с угловым). Странность в том, что я загрузил KO и никогда не буду использовать его! – steve
Глядя на источник бритвы, я вижу: https://github.com/IdeaBlade/Breeze/blob/master/Breeze.Client/Scripts/breeze.base.debug.js#L12728 Если требуется загрузчик, они попытаются загрузить нокаут как 'ko'. Вы можете настроить загрузчик requireJS, чтобы обойти это, указав свой собственный модуль «ko», который ничего не возвращает или возвращает false. Затем ветерок возвращается к «backingStore», и он не должен жаловаться на это. –