Skip to content

Latest commit

 

History

History
 
 

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 

README.md

example.js

function getTemplate(templateName) {
	return require("./templates/"+templateName);
}
console.log(getTemplate("a"));
console.log(getTemplate("b"));

templates/

  • a.js
  • b.js
  • c.js

All templates are of this pattern:

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

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 !**/

/******/ /* WEBPACK FREE VAR INJECTION */ (function(console) {
function getTemplate(templateName) {
	return require(/*! ./templates */2)("./"+templateName);
}
console.log(getTemplate("a"));
console.log(getTemplate("b"));
/******/ /* WEBPACK FREE VAR INJECTION */ }(require(/*! __webpack_console */1)))

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

/**! (webpack)\buildin\__webpack_console.js !**/

var console = (function() { return this["console"] || (this["window"] && this["window"].console) || {} }());
module.exports = console;
for(var name in {log:1, info:1, error:1, warn:1, dir:1, trace:1, assert:1})
	if(!console[name])
		console[name] = function() {};
var times = {};
if(!console.time)
console.time = function(label) {
	times[label] = Date.now();
};
if(!console.timeEnd)
console.timeEnd = function() {
	var duration = Date.now() - times[label];
	console.log('%s: %dms', label, duration);
};

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

/**! .\templates !**/

/***/	var map = {"./a.js":3,"./b.js":4,"./c.js":5};
/***/	exports = module.exports = function(name) {
/***/		return require(exports.id(name) || name)
/***/	};
/***/	exports.id = function(name) {
/***/		return map[name] || map[name+".js"];
/***/	};
/***/	exports.keys = function() {
/***/		return Object.keys(map);
/***/	};

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

/**! .\templates\a.js !**/

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

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

/**! .\templates\b.js !**/

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

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

/**! .\templates\c.js !**/

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

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

Info

Uncompressed

Hash: f37d726cac8a8a4caa9c51bfa3479bc0
Compile Time: 31ms
Chunks: 1
Modules: 6
Modules including duplicates: 6
Modules first chunk: 6
main   output.js:     2772 chars/bytes

 <id>    <size>  <filename>
       <reason> from <filename>
output.js
    0       157  .\example.js
       main
    1       502  (webpack)\buildin\__webpack_console.js
       require (2x) from .\example.js
    2       322  [context] .\templates
       context from .\example.js
    3        80  .\templates\a.js
       context from .\example.js
    4        80  .\templates\b.js
       context from .\example.js
    5        80  .\templates\c.js
       context from .\example.js

Minimized (uglify-js, no zip)

Hash: 12af6de63ffb3550246208db321a2c56
Compile Time: 239ms
Chunks: 1
Modules: 6
Modules including duplicates: 6
Modules first chunk: 6
main   output.js:     1162 chars/bytes

 <id>    <size>  <filename>
       <reason> from <filename>
output.js
    0       110  .\example.js
       main
    1       403  (webpack)\buildin\__webpack_console.js
       require (2x) from .\example.js
    2       213  [context] .\templates
       context from .\example.js
    3        73  .\templates\a.js
       context from .\example.js
    4        73  .\templates\b.js
       context from .\example.js
    5        73  .\templates\c.js
       context from .\example.js

Graph

webpack-graph

Code Splitting

See this example combined with code splitting