Bundles a single JS file alongside your main source code as the source for a Web Worker. Provides a fallback for running the code in the main thread if the browser does not support creating Workers from blobs.
inspired by webworkify
Install
yarn add rollup-plugin-webworkify -D
Require the plugin and add it to your configuration:
import webworkify from 'rollup-plugin-webworkify'; export default { entry: 'src/main.js', plugins: [ webworkify({ // specifically patten files pattern: '**/*.worker.js' // Default: undefined (follow micromath globs) }) ], format: 'umd' };
Example
For each worker that you want to create, import the file with a worker# prefix:
// import work from 'worker#../lib/worker.js' import work from '../lib/foo.worker.js' var w = new work w.addEventListener('message', function (e) { console.log(e.data) }) w.postMessage(4) // send the worker a message
then foo.worker.js, The worker function lives inside of the module.exports:
var gamma = require('gamma') module.exports = function (self) { self.addEventListener('message',function (e) { var startNum = parseInt(e.data); // e.data=4 from main.js setInterval(function () { var r = startNum / Math.random() - 1 self.postMessage([ startNum, r, gamma(r) ]) }, 500) }) }