与Firebug / Chrome控制台中的require.js模块交互?

我刚刚开始使用require.js。 我已经成功地包装了jquery,一些插件和几个我自己的模块。 我试图与我的模块(或jQuery)从Firebug(或谷歌浏览器的JS控制台)交互,我没有太多的运气。

从控制台访问这些模块的正确方法是什么?

说我们有模块/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加载我们的data-main,我们就可以通过javascript控制台命令行访问已经被requireJS加载的模块,如下所示:

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

如果一个模块没有被require()或define()调用加载,我们必须通过我们自己的callback来调用require函数在模块被加载之后调用:

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

否则,requireJS会抛出一个错误,指出模块尚未加载。

有一种方法不使用callback。

如果您在控制台或应用程序之前不需要模块,则可以先要求:

 require(['methodsModule']); 

之后,您可以使用“dynamic”要求来访问它:

 require('methodsModule').someMethod();