webpack/examples/web-worker
Tobias Koppers 4c84defbb6 updated examples 2012-08-23 02:05:07 +02:00
..
README.md updated examples 2012-08-23 02:05:07 +02:00
build.js added more examples 2012-08-23 01:58:17 +02:00
example.js added more examples 2012-08-23 01:58:17 +02:00
template.md added more examples 2012-08-23 01:58:17 +02:00
webpackOptions.js added more examples 2012-08-23 01:58:17 +02:00
worker.js added more examples 2012-08-23 01:58:17 +02:00

README.md

example.js

var Worker = require("worker!./worker");
var worker = new Worker;
worker.postMessage("b");
worker.onmessage = function(event) {
	var templateB = event.data; // "This text was generated by template B"
}

worker.js

onmessage = function(event) {
	var template = event.data;
	require(["../require.context/templates/" + event.data], function(tmpl) {
		postMessage(tmpl());
	});
}

js/output.js

/******/(function(modules) {
/******/	var installedModules = {};
/******/	function require(moduleId) {
/******/		if(typeof moduleId !== "number") throw new Error("Cannot find module '"+moduleId+"'");
/******/		if(installedModules[moduleId])
/******/			return installedModules[moduleId].exports;
/******/		var module = installedModules[moduleId] = {
/******/			exports: {},
/******/			id: moduleId,
/******/			loaded: false
/******/		};
/******/		modules[moduleId](module, module.exports, require);
/******/		module.loaded = true;
/******/		return module.exports;
/******/	}
/******/	require.e = function(chunkId, callback) {
/******/		callback(require);
/******/	};
/******/	require.modules = modules;
/******/	require.cache = installedModules;
/******/	return require(0);
/******/})
/******/({c:"",
/******/0: function(module, exports, require) {

/*** .\example.js ***/

var Worker = require(/* worker!./worker */1);
var worker = new Worker;
worker.postMessage("b");
worker.onmessage = function(event) {
	var templateB = event.data; // "This text was generated by template B"
}

/******/},
/******/
/******/1: function(module, exports, require) {

/*** (webpack)\~\worker-loader!.\worker.js ***/

module.exports = function() {
  return new Worker((require.modules.c||'') + "hash.worker.js");
}

/******/},
/******/
/******/})

js/[hash].worker.js

/******/(function(modules) {
/******/	var installedModules = {}, installedChunks = {0:1};
/******/	function require(moduleId) {
/******/		if(typeof moduleId !== "number") throw new Error("Cannot find module '"+moduleId+"'");
/******/		if(installedModules[moduleId])
/******/			return installedModules[moduleId].exports;
/******/		var module = installedModules[moduleId] = {
/******/			exports: {},
/******/			id: moduleId,
/******/			loaded: false
/******/		};
/******/		modules[moduleId](module, module.exports, require);
/******/		module.loaded = true;
/******/		return module.exports;
/******/	}
/******/	require.e = function(chunkId, callback) {
/******/		if(installedChunks[chunkId] === 1) return callback(require);
/******/		importScripts(chunkId+modules.a);
/******/		callback(require);
/******/	};
/******/	require.modules = modules;
/******/	require.cache = installedModules;
/******/	this[modules.b] = function(chunkId, moreModules) {
/******/		for(var moduleId in moreModules)
/******/			modules[moduleId] = moreModules[moduleId];
/******/		installedChunks[chunkId] = 1;
/******/	};
/******/	return require(0);
/******/})
/******/({a:".hash.worker.js",b:"webpackJsonp",c:"",
/******/0: function(module, exports, require) {

/*** .\worker.js ***/

/******/ /* WEBPACK FREE VAR INJECTION */ (function(require) {
onmessage = function(event) {
	var template = event.data;
	require(1, function() { return [require(/* ../require.context/templates */2)("./" + event.data)]}, function(tmpl) {
		postMessage(tmpl());
	});
}

/******/ /* WEBPACK FREE VAR INJECTION */ }(require(/* __webpack_amd_require */1)(require)))

/******/},
/******/
/******/1: function(module, exports, require) {

/*** (webpack)\buildin\__webpack_amd_require.js ***/

function amdRequireFactory(req) {
	function amdRequire(chunk, requiresFn, fn) {
		if(!requiresFn) {
			// commonjs
			return req(chunk);
		}
		req.e(chunk, function() {
			var modules = requiresFn();
			if(fn)
				return fn.apply(null, modules);
		});
	}
	for(var name in req)
		amdRequire[name] = req[name];
	amdRequire.amd = amdRequireFactory.amd;
	amdRequire.config = function() {/* config is ignored, use webpack options */};
	return amdRequire;
}
amdRequireFactory.amd = {};
module.exports = amdRequireFactory;

/******/},
/******/
/******/})

Info

Uncompressed

Hash: 9a3fb6bf1155fd1c85b5a003f0e9fe77
Compile Time: 83ms
Chunks: 1
Modules: 2
Modules including duplicates: 2
Modules per chunk: 2
Modules first chunk: 2
   output.js:     1354 characters
1.hash.worker.js:     1105 characters
hash.worker.js:     2345 characters

 <id>    <size>  <filename>
       <reason> from <filename>
output.js
    0       211  .\example.js
       main
    1        96  (webpack)\~\worker-loader!.\worker.js
       require (1x) from .\example.js
Embedded Stats
 .\worker.js
     Hash: 65bb224a2fa23725b7e946ce69f409df
     Compile Time: 31ms
     Chunks: 2
     Modules: 6
     Modules including duplicates: 6
     Modules per chunk: 3
     Modules first chunk: 2
     
      <id>    <size>  <filename>
            <reason> from <filename>
     hash.worker.js
         0       211  .\worker.js
            main
         1       534  (webpack)\buildin\__webpack_amd_require.js
            require (1x) from .\worker.js
     1.hash.worker.js
         2       300  [context] (webpack)\examples\require.context\templates
            async context from .\worker.js
         3        82  (webpack)\examples\require.context\templates\a.js
            async context from .\worker.js
         4        82  (webpack)\examples\require.context\templates\b.js
            async context from .\worker.js
         5        82  (webpack)\examples\require.context\templates\c.js
            async context from .\worker.js

Minimized (uglify-js, no zip)

Hash: 7c6135cf8b61087ca531a96e890b8f01
Compile Time: 172ms
Chunks: 1
Modules: 2
Modules including duplicates: 2
Modules per chunk: 2
Modules first chunk: 2
   output.js:      477 characters
1.hash.worker.js:      473 characters
hash.worker.js:      801 characters

 <id>    <size>  <filename>
       <reason> from <filename>
output.js
    0       106  .\example.js
       main
    1        86  (webpack)\~\worker-loader!.\worker.js
       require (1x) from .\example.js
Embedded Stats
 .\worker.js
     Hash: a1886641df5eb2595eadd73b78b81f70
     Compile Time: 106ms
     Chunks: 2
     Modules: 6
     Modules including duplicates: 6
     Modules per chunk: 3
     Modules first chunk: 2
     
      <id>    <size>  <filename>
            <reason> from <filename>
     hash.worker.js
         0       120  .\worker.js
            main
         1       264  (webpack)\buildin\__webpack_amd_require.js
            require (1x) from .\worker.js
     1.hash.worker.js
         2       228  [context] (webpack)\examples\require.context\templates
            async context from .\worker.js
         3        72  (webpack)\examples\require.context\templates\a.js
            async context from .\worker.js
         4        72  (webpack)\examples\require.context\templates\b.js
            async context from .\worker.js
         5        72  (webpack)\examples\require.context\templates\c.js
            async context from .\worker.js