webpack/examples/code-splitted-require.context
Tobias Koppers 92d2a7ffbf updated examples 2013-02-13 11:58:13 +01:00
..
README.md updated examples 2013-02-13 11:58:13 +01:00
build.js better free var filling, node.js test 2012-04-05 14:59:01 +02:00
example.js added more examples 2012-08-23 01:58:17 +02:00
graph.svg updated examples 2012-11-07 12:49:01 +01:00
template.md github do not server static files -> gh-pages 2012-10-09 17:24:06 +02:00

README.md

example.js

function getTemplate(templateName, callback) {
	require.ensure([], function(require) {
		callback(require("../require.context/templates/"+templateName)());
	});
}
getTemplate("a", function(a) {
	console.log(a);
});
getTemplate("b", function(b) {
	console.log(b);
});

js/output.js

/******/ (function webpackBootstrap(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].call(null, module, module.exports, require);
/******/ 		module.loaded = true;
/******/ 		return module.exports;
/******/ 	}
/******/ 	require.e = function requireEnsure(chunkId, callback) {
/******/ 		if(installedChunks[chunkId] === 1) return callback.call(null, require);
/******/ 		if(installedChunks[chunkId] !== undefined)
/******/ 			installedChunks[chunkId].push(callback);
/******/ 		else {
/******/ 			installedChunks[chunkId] = [callback];
/******/ 			var head = document.getElementsByTagName('head')[0];
/******/ 			var script = document.createElement('script');
/******/ 			script.type = 'text/javascript';
/******/ 			script.charset = 'utf-8';
/******/ 			script.src = modules.c+""+chunkId+".output.js";
/******/ 			head.appendChild(script);
/******/ 		}
/******/ 	};
/******/ 	require.modules = modules;
/******/ 	require.cache = installedModules;
/******/ 	var installedChunks = {0:1};
/******/ 	window["webpackJsonp"] = function webpackJsonpCallback(chunkId, moreModules) {
/******/ 		for(var moduleId in moreModules)
/******/ 			modules[moduleId] = moreModules[moduleId];
/******/ 		var callbacks = installedChunks[chunkId];
/******/ 		installedChunks[chunkId] = 1;
/******/ 		for(var i = 0; i < callbacks.length; i++)
/******/ 			callbacks[i].call(null, require);
/******/ 	};
/******/ 	return require(0);
/******/ })({
/******/ c: "",

/***/ 0:
/*!********************!*\
  !*** ./example.js ***!
  \********************/
/***/ function(module, exports, require) {

	function getTemplate(templateName, callback) {
		require.e/*nsure*/(1, function(require) {
			callback(require(/*! ../require.context/templates */ 1)("./"+templateName)());
		});
	}
	getTemplate("a", function(a) {
		console.log(a);
	});
	getTemplate("b", function(b) {
		console.log(b);
	});

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

js/1.output.js

webpackJsonp(1, {

/***/ 1:
/*!********************************************!*\
  !*** ./require.context/templates ^\.\/.*$ ***!
  \********************************************/
/***/ function(module, exports, require) {

	var map = {
		"./a": 2,
		"./a.js": 2,
		"./b": 3,
		"./b.js": 3,
		"./c": 4,
		"./c.js": 4
	};
	function webpackContext(req) {
		return require(map[req] || (function() { throw new Error("Cannot find module '" + req + "'.") }()));
	};
	webpackContext.keys = function webpackContextKeys() {
		return Object.keys(map);
	};
	module.exports = webpackContext;
	

/***/ },

/***/ 2:
/*!****************************************!*\
  !*** ./require.context/templates/a.js ***!
  \****************************************/
/***/ function(module, exports, require) {

	module.exports = function() {
		return "This text was generated by template A";
	}

/***/ },

/***/ 3:
/*!****************************************!*\
  !*** ./require.context/templates/b.js ***!
  \****************************************/
/***/ function(module, exports, require) {

	module.exports = function() {
		return "This text was generated by template B";
	}

/***/ },

/***/ 4:
/*!****************************************!*\
  !*** ./require.context/templates/c.js ***!
  \****************************************/
/***/ function(module, exports, require) {

	module.exports = function() {
		return "This text was generated by template C";
	}

/***/ }

})

Info

Uncompressed

Hash: 8001dd58ca639f6177eeb7302f24a770
Time: 40ms
      Asset  Size  Chunks  Chunk Names
  output.js  2291       0  main       
1.output.js  1446       1             
chunk    {0} output.js (main) 266
    [0] ./example.js 266 [built] {0}
chunk    {1} 1.output.js 457 {0} 
    [1] ./require.context/templates ^\.\/.*$ 217 [built] {1}
        cjs require context ../require.context/templates [0] ./example.js 3:11-64
    [2] ./require.context/templates/a.js 80 [built] {1}
        context element ./a [1] ./require.context/templates ^\.\/.*$
        context element ./a.js [1] ./require.context/templates ^\.\/.*$
    [3] ./require.context/templates/b.js 80 [built] {1}
        context element ./b [1] ./require.context/templates ^\.\/.*$
        context element ./b.js [1] ./require.context/templates ^\.\/.*$
    [4] ./require.context/templates/c.js 80 [built] {1}
        context element ./c [1] ./require.context/templates ^\.\/.*$
        context element ./c.js [1] ./require.context/templates ^\.\/.*$

Minimized (uglify-js, no zip)

Hash: 8001dd58ca639f6177eeb7302f24a770
Time: 154ms
      Asset  Size  Chunks  Chunk Names
  output.js   816       0  main       
1.output.js   491       1             
chunk    {0} output.js (main) 266
    [0] ./example.js 266 [built] {0}
chunk    {1} 1.output.js 457 {0} 
    [1] ./require.context/templates ^\.\/.*$ 217 [built] {1}
        cjs require context ../require.context/templates [0] ./example.js 3:11-64
    [2] ./require.context/templates/a.js 80 [built] {1}
        context element ./a [1] ./require.context/templates ^\.\/.*$
        context element ./a.js [1] ./require.context/templates ^\.\/.*$
    [3] ./require.context/templates/b.js 80 [built] {1}
        context element ./b [1] ./require.context/templates ^\.\/.*$
        context element ./b.js [1] ./require.context/templates ^\.\/.*$
    [4] ./require.context/templates/c.js 80 [built] {1}
        context element ./c [1] ./require.context/templates ^\.\/.*$
        context element ./c.js [1] ./require.context/templates ^\.\/.*$

Graph

webpack-graph