Взаимодействие с модулями require.js с консоли Firebug/Chrome?

Я только начинаю с require.js. Я успешно завернул jquery, некоторые плагины и пару моих собственных модулей. Я пытаюсь взаимодействовать с моими модулями (или jquery) с Firebug (или консолью Google JS JS), и мне не очень повезло.

Каков правильный способ доступа к этим модулям с консоли?

Ответ 1

Скажем, у нас есть модуль /app/scripts/methodsModule.js, который возвращает несколько методов:

define({
    someMethod: function() {
        // do stuff
    },
    anotherMethod: function() {
        // do some more stuff
    }
});

В нашем основном файле данных /app/scripts/main.js мы имеем:

require(['methodsModule'], function(methods) {
    methods.someMethod() // call someMethod
    methods.anotherMethod() // call anotherMethod
})

После того, как requireJS загрузит нашу основную информацию, мы можем получить доступ к любым модулям, которые уже были загружены requireJS из командной строки консоли javascript следующим образом:

>> methods = require('methodsModule'); // requireJS has module methodsModule stored
>> methods.someMethod() // call someMethod
>> methods.anotherMethod() // call anotherMethod

Если модуль не был загружен вызовом require() или define(), мы должны передать наш собственный обратный вызов для вызова функции вызова после загрузки модуля:

>> myCB = function(methods) { methods.someMethod() }
>> require(['methodsModule'], myCB)

В противном случае requireJS выдает сообщение о том, что модуль еще не загружен.

Ответ 2

Существует способ без использования обратных вызовов.

Если модуль не требуется в консоли или в приложении раньше, вы можете просто потребовать его сначала:

require(['methodsModule']);

после этого вы можете использовать "динамический", чтобы получить к нему доступ:

require('methodsModule').someMethod();