efront 4.32.0 → 4.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/coms/basic/#loader.js
CHANGED
|
@@ -310,7 +310,7 @@ var loadModule = function (url, then, prebuilds = {}) {
|
|
|
310
310
|
mod.args = args;
|
|
311
311
|
mod.argNames = argNames;
|
|
312
312
|
mod.strs = strs;
|
|
313
|
-
var
|
|
313
|
+
var loadedCount = 0;
|
|
314
314
|
if (required) {
|
|
315
315
|
required = required.split(';').filter(a => !!a);
|
|
316
316
|
if (afterfix) required = required.map(r => r + afterfix);
|
|
@@ -321,13 +321,13 @@ var loadModule = function (url, then, prebuilds = {}) {
|
|
|
321
321
|
args = args.concat(required);
|
|
322
322
|
var _errored = [];
|
|
323
323
|
var response = function (error) {
|
|
324
|
-
|
|
324
|
+
loadedCount++;
|
|
325
325
|
if (error) {
|
|
326
326
|
if (!errored[error]) errored[error] = [];
|
|
327
327
|
errored[error].push(key);
|
|
328
328
|
if (_errored.indexOf(error) < 0) _errored.push(error);
|
|
329
329
|
}
|
|
330
|
-
if (
|
|
330
|
+
if (loadedCount === args.length) {
|
|
331
331
|
if (_errored.length) loadedModules[key].error = _errored;
|
|
332
332
|
flushTree(loadedModules, key, mod);
|
|
333
333
|
}
|
|
@@ -338,6 +338,13 @@ var loadModule = function (url, then, prebuilds = {}) {
|
|
|
338
338
|
loadedModules[key].args = mod.args;
|
|
339
339
|
loadedModules[key].mod = mod;
|
|
340
340
|
for (var moduleName of args) {
|
|
341
|
+
if (moduleName === url) {
|
|
342
|
+
// <!--
|
|
343
|
+
// console.log(`检查到自我引用的代码 %c>> ${url} <<%c `, "color:#c46", 'color:');
|
|
344
|
+
// -->
|
|
345
|
+
response();
|
|
346
|
+
continue;
|
|
347
|
+
}
|
|
341
348
|
loadModule(moduleName, response, prebuilds);
|
|
342
349
|
}
|
|
343
350
|
}
|
|
@@ -445,7 +452,8 @@ var createModule = function (exec, originNames, compiledNames, prebuilds = {}, a
|
|
|
445
452
|
if (argfix in exec) return exec[argfix];
|
|
446
453
|
var module = {};
|
|
447
454
|
var exports = module.exports = exec[argfix] || new Exports;
|
|
448
|
-
var isModuleInit =
|
|
455
|
+
var isModuleInit = originNames.indexOf('module') >= 0 || originNames.indexOf("exports") >= 0;
|
|
456
|
+
if (isModuleInit) if (argfix != null) exec[argfix] = exports;
|
|
449
457
|
var required = exec.required;
|
|
450
458
|
if (required) required = required.map(a => loadedModules[keyprefix + a]);
|
|
451
459
|
var argsList = originNames.map(function (aName) {
|
|
@@ -454,15 +462,14 @@ var createModule = function (exec, originNames, compiledNames, prebuilds = {}, a
|
|
|
454
462
|
return prebuilds[argName];
|
|
455
463
|
}
|
|
456
464
|
if (argName === "module") {
|
|
457
|
-
isModuleInit = true;
|
|
458
|
-
if (argfix != null) exec[argfix] = exports;
|
|
459
465
|
return module;
|
|
460
466
|
}
|
|
461
467
|
if (argName === "exports") {
|
|
462
|
-
isModuleInit = true;
|
|
463
|
-
if (argfix != null) exec[argfix] = exports;
|
|
464
468
|
return exports;
|
|
465
469
|
}
|
|
470
|
+
if (argName === exec.file) {
|
|
471
|
+
return isModuleInit ? exports : exec;
|
|
472
|
+
}
|
|
466
473
|
if (argName === '\\import') {
|
|
467
474
|
return new Meta(exec.file, argfix);
|
|
468
475
|
}
|
|
@@ -474,6 +481,7 @@ var createModule = function (exec, originNames, compiledNames, prebuilds = {}, a
|
|
|
474
481
|
var mod = required[refer];
|
|
475
482
|
argfix = argfix || '';
|
|
476
483
|
if (argfix in mod) return mod[argfix];
|
|
484
|
+
if (mod === exec) return exports;
|
|
477
485
|
var c = mod[argfix] = createModule(mod, mod.args || [], mod.argNames, prebuilds, argfix);
|
|
478
486
|
return c;
|
|
479
487
|
};
|