From 62f2f5d830e1250dfaf4c68506668f44a04b1053 Mon Sep 17 00:00:00 2001 From: Strencher <46447572+Strencher@users.noreply.github.com> Date: Mon, 26 Jul 2021 00:09:18 +0200 Subject: [PATCH] Fix cache issue & crashing issue (#953) Fixes #866 --- renderer/src/modules/addonmanager.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/renderer/src/modules/addonmanager.js b/renderer/src/modules/addonmanager.js index 7c23cf78..9d23c34f 100644 --- a/renderer/src/modules/addonmanager.js +++ b/renderer/src/modules/addonmanager.js @@ -96,12 +96,17 @@ export default class AddonManager { // If this file already exists, give a warning and move on. if (fs.existsSync(newFilename)) { - Logger.warn("AddonManager", `Duplicate files found: ${filename} and ${newFilename}`); + Logger.warn(this.name, `Duplicate files found: ${filename} and ${newFilename}`); return; } // Rename the file and let it go on - fs.renameSync(absolutePath, path.resolve(this.addonFolder, newFilename)); + try { + fs.renameSync(absolutePath, path.resolve(this.addonFolder, newFilename)); + } + catch (error) { + Logger.err(this.name, `Could not rename file: ${filename} ${newFilename}`, error); + } } await new Promise(r => setTimeout(r, 100)); @@ -200,9 +205,11 @@ export default class AddonManager { loadAddon(filename, shouldToast = false) { if (typeof(filename) === "undefined") return; try { + delete __non_webpack_require__.cache[__non_webpack_require__.resolve(path.resolve(this.addonFolder, filename))]; __non_webpack_require__(path.resolve(this.addonFolder, filename)); } catch (error) { + Logger.err(this.name, `Could not load ${path.basename(filename)}:`, error); return new AddonError(filename, filename, Strings.Addons.compileError, {message: error.message, stack: error.stack}, this.prefix); }