Create Web Workers from a single Browserify bundle
A quick and dirty way of running Web Workers within a single browserified bundle.
Intended as a solution that works now, avoiding any significant tradeoffs (e.g. duplicate scripts). Here's hoping it gets rendered obsolete by workerify if/when Browserify's transform API gets a little bit more flexible.
npm install worker-pack
Firstly, though worker-pack is intended for Browserify v2 it isn't packaged as a transform stream. Instead, you just have to pipe Browserify's output through the worker-pack CLI:
# Instead of this:browserify index.js > bundle.js# Do this:browserify index.js | node_modules/.bin/worker-pack > bundle.js
Now you should be able to
var pack = require'worker-pack'if packisWorkerselfpostMessage'beep boop'elsevar worker = packcreateWorkerconsole.logedataworkerpostMessage
If you want to use the workerstream module, you can just get a Worker URL and pass that to the stream:
var workerstream = require'workerstream'pack = require'worker-pack'if !packisWorkervar worker = workerstreampackcreateWorkerURL