Skip to content

malbernaz/worker-loader

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

worker loader for webpack

Usage

Documentation: Using loaders

Import the worker file:

// main.js
var MyWorker = require("worker-loader!./file.js");

var worker = new MyWorker();
worker.postMessage({a: 1});
worker.onmessage = function(event) {...};
worker.addEventListener("message", function(event) {...});

You can also inline the worker as a blob with the inline parameter:

var MyWorker = require("worker-loader?inline!./file.js");

The worker file can import dependencies just like any other file:

// file.js
var _ = require('lodash')

var o = {foo: 'foo'}

_.has(o, 'foo') // true

You can even use ES6 modules if you have the babel-loader configured:

// file.js
import _ from 'lodash'

let o = {foo: 'foo'}

_.has(o, 'foo') // true

Service Workers

Note: Service workers cannot use the inline option. require('worker?service&inline!./worker') the inline here is ignored.

// main.js
var MyWorker = require("worker?service!./worker.js");

// Options passed here become the 2nd parameter to navigator.serviceWorker.register
MyWorker({ scope: '/' }).then((registration) => {
    console.log('registration successful')
}).catch((err) => {
    console.log('registration failed', err)
})

See navigator.serviceWorker.register for available options. At the time of this writing it appears the only option is scope.

License

MIT (http://www.opensource.org/licenses/mit-license.php)

About

worker loader module for webpack

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%