require.js: Access all loaded modules

前端 未结 3 896
暗喜
暗喜 2020-12-04 14:16

Is there any way to access all loaded modules of require.js?

Background:
I want to automatically call an init() function of my javascript-modules af

相关标签:
3条回答
  • 2020-12-04 14:47

    Just finished a similar behavior within my RequireJS project. require.s.contexts['_'].registry holds the list of the registered modules.

    I am using Underscore.js for getting, filtering and iterating the list of modules. Maybe the following code fragment helps you:

    var modules_registered = _.keys(require.s.contexts['_'].registry);
    var modules_to_be_initialized = _.filter(modules_registered, function(module_title) {
        return module_title.indexOf('modules') > -1;
    });
    
    _.each(modules_to_be_initialized, function(module_name) {
        require([module_name], function(current_module) {
            current_module.init();
        });
    });
    
    0 讨论(0)
  • 2020-12-04 14:59

    I'm lazy, so I just did this:

        var modulesToLoad = Object.keys(require.s.contexts['_'].registry);
        require(modulesToLoad);
    

    Based on other answers here.

    0 讨论(0)
  • 2020-12-04 15:12

    Yes, require.s.contexts._.defined is an object which its keys are the module names and the values include the value returned from that module.

    require.s.contexts._.defined includes all the modules (either define() or require() such as the Javascript file that is the starting point of the program and is indicated using data-main for RequireJS).

    0 讨论(0)
提交回复
热议问题