From d9f4156fe06001c5361175abdc91db8ca5f8f219 Mon Sep 17 00:00:00 2001 From: Daniel Dunderfelt Date: Wed, 2 Jan 2019 10:22:19 +0200 Subject: [PATCH] Save the exported method names in a local cache object, per entry file, instead of using the compilation object. Fixes #24 where worker methods are undefined after a recompile. --- src/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 1032cd5..930e904 100644 --- a/src/index.js +++ b/src/index.js @@ -83,7 +83,7 @@ loader.pitch = function(request) { // only process entry exports if (current.resource!==entry) return; - let exports = compilation.__workerizeExports || (compilation.__workerizeExports = {}); + let exports = CACHE[entry] || (CACHE[entry] = {}); if (decl.id) { exports[decl.id.name] = true; @@ -106,8 +106,9 @@ loader.pitch = function(request) { if (entries[0]) { worker.file = entries[0].files[0]; + let entry = entries[0].entryModule.resource; let contents = compilation.assets[worker.file].source(); - let exports = Object.keys(CACHE[worker.file] = compilation.__workerizeExports || CACHE[worker.file] || {}); + let exports = Object.keys(CACHE[entry] || {}); // console.log('Workerized exports: ', exports.join(', '));