azproduction / lmd

LMD - JavaScript Module-Assembler for building better web applications :warning: Project is no longer supported :warning:
http://azproduction.ru/lmd/
MIT License
449 stars 27 forks source link

bundle modules load #193

Open entcor opened 9 years ago

entcor commented 9 years ago

Добрый день ! В коде lmd:

    var processBundleJSONP = function (_main, _modules, _modules_options) {

        if (typeof _main === "object") {
            _modules_options = _modules;
            _modules = _main;
        }

        for (var moduleName in _modules) {
            // if already initialized - skip
            if (moduleName in sb.modules) { <<<<<<<<<<<<<<<<<<<
                continue;
            }

предлагается

if (moduleName in sb.modules) 

заменить на

if (moduleName in sb.modules && sb.modules[moduleName])

дело в том, что если предварительно вызвать require(modName), которого еще не существует (бандл не загружен), то в sb.modules будет зарегистрировано: sb.modules = undefined и загрузка бандла (с этим модулем) не приведет к загрузке модуля, так как

        if (moduleName in sb.modules) { <<<<<<<<<<<<<<<<<<<
                continue;
        }

его инициализацию пропустит

ну или в require() не добавлять в modules пустышки

Спасибо !

kirill-zhirnov commented 9 years ago

+1