Interacting with require.js modules from the Firebug/Chrome console?

孤街浪徒 提交于 2019-11-29 22:51:28

Say we have module /app/scripts/methodsModule.js that returns a few methods:

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

In our data-main file /app/scripts/main.js we have:

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

Once requireJS loads up our data-main, we can access any modules that have already been loaded by requireJS from the javascript console command line like so:

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

If a module hasn't been loaded by a call to require() or define(), we have to pass our own callback for the require function to call after the module has been loaded:

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

Otherwise, requireJS throws an error saying that the module has not yet been loaded..

There is a way without using callbacks.

If you module was not required in console or you application before, you can just require it first:

require(['methodsModule']);

after that you can use "dynamic" require to access it:

require('methodsModule').someMethod();
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!