Fix plugin error and lazy webpack
This commit is contained in:
parent
5285c950d0
commit
2bf7c4386f
|
@ -127,7 +127,7 @@ export default new class PluginManager extends AddonManager {
|
|||
return addon;
|
||||
}
|
||||
catch (err) {
|
||||
return new AddonError(addon.name || addon.filename, module.filename, "Plugin could not be compiled", {message: err.message, stack: err.stack}, this.prefix);
|
||||
throw new AddonError(addon.name || addon.filename, module.filename, "Plugin could not be compiled", {message: err.message, stack: err.stack}, this.prefix);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -324,21 +324,29 @@ export default class WebpackModules {
|
|||
const fromCache = this.getModule(filter);
|
||||
if (fromCache) return Promise.resolve(fromCache);
|
||||
|
||||
const wrappedFilter = (exports) => {
|
||||
try {
|
||||
return filter(exports);
|
||||
}
|
||||
catch (err) {
|
||||
if (!hasThrown.has(filter)) Logger.warn("WebpackModules~getModule", "Module filter threw an exception.", filter, err);
|
||||
hasThrown.add(filter);
|
||||
return false;
|
||||
}
|
||||
};
|
||||
|
||||
return new Promise((resolve) => {
|
||||
const cancel = () => {this.removeListener(listener);};
|
||||
const listener = function (mod) {
|
||||
const directMatch = filter(mod);
|
||||
const cancel = () => this.removeListener(listener);
|
||||
const listener = function(exports) {
|
||||
if (!exports) return;
|
||||
|
||||
let foundModule = null;
|
||||
if (exports.__esModule && exports.default && wrappedFilter(exports.default)) foundModule = defaultExport ? exports.default : exports;
|
||||
if (wrappedFilter(exports)) foundModule = exports;
|
||||
if (!foundModule) return;
|
||||
|
||||
if (directMatch) {
|
||||
cancel();
|
||||
return resolve(directMatch);
|
||||
}
|
||||
|
||||
const defaultMatch = filter(mod.default);
|
||||
if (!defaultMatch) return;
|
||||
|
||||
cancel();
|
||||
resolve(defaultExport ? mod.default : mod);
|
||||
resolve(protect(foundModule));
|
||||
};
|
||||
|
||||
this.addListener(listener);
|
||||
|
|
Loading…
Reference in New Issue