Fix #3940: unload all children from the plugin module on updates.

This commit is contained in:
John Livingston
2021-04-09 09:32:16 +02:00
committed by Chocobozzz
parent 4113719209
commit 09d535ef98
2 changed files with 4 additions and 1 deletions
+1
View File
@@ -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",
+3 -1
View File
@@ -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)) {