Экспозиция миндального модуля с оконным объектом не выполняется из-за асинхронности

Я работаю над проектом JavaScript, где мы используем requirejs для управления нашим кодом. Продукт, который мы создаем, будет использоваться на сторонних веб-сайтах, и поэтому мы не можем предполагать, что присутствует AMD-совместимая библиотека. Чтобы решить эту проблему, мы включаем миндаль в наш целевой файл и выставляем наш основной модуль на window, Файл, созданный нашей сборкой, выглядит следующим образом:

(function() {
    //Almond lib

    //Our code

   define('window-exposer', ['main-module'], function(mainModule) {
       window.mainModule = mainModule;
   });

   require('window-exposer');
}());

При создании сайта, который хотите использовать mainModule выдается ошибка, потому что, когда специфический код сайта пытается получить доступ window.mainModule это еще не было установлено. Есть также случаи, когда модуль действительно был инициализирован и код работает.

Есть ли способ гарантировать, что window-exposer запускается раньше, чем другой JavascriptCode?

1 ответ

Решение

I solved it by using the solution provided here https://github.com/jrburke/almond

Другие вопросы по тегам