{"id":20861,"library":"webworkify-webpack","title":"webworkify-webpack","description":"Launches a web worker at runtime from webpack's bundled modules, including only the used dependencies. Version 2.1.5 is stable, uses webpack's API to avoid hacks from v1, and has no eval restrictions. It is an alternative to worker-loader and target: 'webworker', allowing a single bundle for both main thread and worker contexts. Requires webpack and uses require.resolve.","status":"active","version":"2.1.5","language":"javascript","source_language":"en","source_url":"https://github.com/borisirota/webworkify-webpack","tags":["javascript","web","worker","webworker","background","browser","inline","runtime","webpack"],"install":[{"cmd":"npm install webworkify-webpack","lang":"bash","label":"npm"},{"cmd":"yarn add webworkify-webpack","lang":"bash","label":"yarn"},{"cmd":"pnpm add webworkify-webpack","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM default export; CommonJS require() also works but is not recommended for consistency.","wrong":"const work = require('webworkify-webpack')","symbol":"work","correct":"import work from 'webworkify-webpack'"},{"note":"Must use require.resolve() to get the module path, not a plain string literal.","wrong":"let w = work('./worker.js')","symbol":"work","correct":"let w = work(require.resolve('./worker.js'))"},{"note":"Options is the second argument, not third.","wrong":"let w = work(require.resolve('./worker.js'), { bare: true }, options)","symbol":"work","correct":"let w = work(require.resolve('./worker.js'), { bare: true })"}],"quickstart":{"code":"// main.js\nimport work from 'webworkify-webpack';\n\nlet w = work(require.resolve('./worker.js'));\nw.addEventListener('message', event => {\n    console.log('Worker said: ', event.data);\n});\nw.postMessage('Hello worker');\n\n// worker.js\nmodule.exports = function() {\n    self.addEventListener('message', event => {\n        self.postMessage(event.data + ' back at ya!');\n    });\n};","lang":"javascript","description":"Creates a web worker from worker.js using webworkify-webpack, sends a message, and logs the response."},"warnings":[{"fix":"Use require.resolve('./worker.js') instead of './worker.js'.","message":"Must use require.resolve() with the worker module path, not a string literal.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Place only the worker logic inside module.exports; avoid heavy computation in outer scope.","message":"Code outside module.exports in the worker file runs in both main thread and worker.","severity":"gotcha","affected_versions":"*"},{"fix":"Upgrade to v2 or use named function exports.","message":"Anonymous functions as module.exports may cause issues (v1 had problems; v2 claims to fix).","severity":"gotcha","affected_versions":"<2.0.0"},{"fix":"Use worker-loader or target: 'webworker' if HMR is needed.","message":"Cannot use devtools like HMR with webworkify-webpack; it's runtime-based.","severity":"gotcha","affected_versions":"*"},{"fix":"Consider using worker-loader or @kayak/webpack-workers for modern webpack versions.","message":"The package is not actively maintained; last release in 2019.","severity":"deprecated","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Change work('./worker.js') to work(require.resolve('./worker.js')).","cause":"Using a string literal instead of require.resolve().","error":"Error: Cannot find module './worker.js'"},{"fix":"Bundle with webpack and use ES import: import work from 'webworkify-webpack'.","cause":"Running in an environment without CommonJS require (e.g., pure ESM or browser without webpack).","error":"Uncaught ReferenceError: require is not defined"},{"fix":"Ensure the worker file exports a function via module.exports = function() { ... }.","cause":"Worker module's module.exports is not a function.","error":"TypeError: Cannot read property 'apply' of undefined"},{"fix":"Only use this library within a webpack-bundled application.","cause":"Using webworkify-webpack outside of a webpack bundle where require.resolve is not available.","error":"Error: webworkify-webpack: require.resolve is not a function"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}