diff --git a/package.json b/package.json index e3766e318..e6ae0a27e 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "cookie-parser": "^1.4.3", "cors": "^2.8.1", "create-torrent": "^4.0.0", + "decache": "^4.6.0", "deep-object-diff": "^1.1.0", "email-templates": "^8.0.3", "express": "^4.12.4", diff --git a/server/lib/plugins/plugin-manager.ts b/server/lib/plugins/plugin-manager.ts index c19b40135..0086a0e2e 100644 --- a/server/lib/plugins/plugin-manager.ts +++ b/server/lib/plugins/plugin-manager.ts @@ -23,6 +23,8 @@ import { ClientHtml } from '../client-html' import { RegisterHelpers } from './register-helpers' import { installNpmPlugin, installNpmPluginFromDisk, removeNpmPlugin } from './yarn' +const decache = require('decache') + export interface RegisteredPlugin { npmName: string name: string @@ -411,7 +413,7 @@ export class PluginManager implements ServerHook { // Delete cache if needed const modulePath = join(pluginPath, packageJSON.library) - delete require.cache[modulePath] + decache(modulePath) const library: PluginLibrary = require(modulePath) if (!isLibraryCodeValid(library)) {