Refresh external modules when trying to load a plugin that requires a module that doesn’t exist

This commit is contained in:
Samuel Elliott 2019-03-22 23:49:28 +00:00
parent c05179da4b
commit d81e92ce55
No known key found for this signature in database
GPG Key ID: 8420C7CDE43DC4D6
2 changed files with 13 additions and 4 deletions

View File

@ -100,12 +100,21 @@ export default class PluginManager extends ContentManager {
const deps = this.pluginDependencies[paths.contentPath] = {};
if (dependencies) {
let refreshedModules = false;
for (const [key, value] of Object.entries(dependencies)) {
const extModule = ExtModuleManager.findModule(key);
let extModule = ExtModuleManager.findModule(key);
if (!extModule) {
throw {message: `Dependency ${key}:${value} is not loaded.`};
if (!refreshedModules) {
await ExtModuleManager.refreshContent(true);
refreshedModules = true;
}
extModule = ExtModuleManager.findModule(key);
if (!extModule) throw {message: `Dependency ${key} is not loaded.`};
}
deps[key] = extModule.__require;
deps[key] = deps[extModule.id] = extModule.__require;
}
}

View File

@ -29,7 +29,7 @@
},
"main": "index.js",
"dependencies": {
"example-module": "1.0"
"Example Module": "1.0"
},
"defaultConfig": [
{