webpack
Version:
Packs CommonJs/AMD modules for the browser. Allows to split your codebase into multiple bundles, which can be loaded on demand. Support loaders to preprocess files, i.e. json, jade, coffee, css, less, ... and your custom stuff.
406 lines (360 loc) • 14.1 kB
Markdown
``` javascript
require("./modules/a-b-c");
require("./modules/a-b");
require("./modules/a-c");
```
``` javascript
require("./modules/a-b-c");
require("./modules/admin");
```
``` javascript
var path = require("path");
var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");
module.exports = {
entry: {
pageA: "./pageA",
pageB: "./pageB",
pageC: "./pageC",
adminPageA: "./adminPageA",
adminPageB: "./adminPageB",
adminPageC: "./adminPageC",
},
output: {
path: path.join(__dirname, "js"),
filename: "[name].js"
},
plugins: [
new CommonsChunkPlugin("admin-commons.js", ["adminPageA", "adminPageB"]),
new CommonsChunkPlugin("commons.js", ["pageA", "pageB", "admin-commons.js"], 2),
new CommonsChunkPlugin("c-commons.js", ["pageC", "adminPageC"]),
]
}
```
``` html
<html>
<head></head>
<body>
<script src="js/commons.js" charset="utf-8"></script>
<script src="js/pageA.js" charset="utf-8"></script>
</body>
</html>
```
``` html
<html>
<head></head>
<body>
<script src="js/commons.js" charset="utf-8"></script>
<script src="js/admin-commons.js" charset="utf-8"></script>
<script src="js/adminPageA.js" charset="utf-8"></script>
</body>
</html>
```
``` javascript
/******/ (function(modules) { // webpackBootstrap
/******/
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // object to store loaded and loading chunks
/******/ // "0" means "already loaded"
/******/ // Array means "loading", array contains callbacks
/******/ var installedChunks = {
/******/ 0:0,
/******/ 1:0
/******/ };
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/ // This file contains only the entry chunk.
/******/ // The chunk loading function for additional chunks
/******/ __webpack_require__.e = function requireEnsure(chunkId, callback) {
/******/ // "0" is the signal for "already loaded"
/******/ if(installedChunks[chunkId] === 0)
/******/ return callback.call(null, __webpack_require__);
/******/
/******/ // an array means "currently loading".
/******/ if(installedChunks[chunkId] !== undefined) {
/******/ installedChunks[chunkId].push(callback);
/******/ } else {
/******/ // start chunk loading
/******/ installedChunks[chunkId] = [callback];
/******/ var head = document.getElementsByTagName('head')[0];
/******/ var script = document.createElement('script');
/******/ script.type = 'text/javascript';
/******/ script.charset = 'utf-8';
/******/ script.src = __webpack_require__.p + "" + chunkId + "..js";
/******/ head.appendChild(script);
/******/ }
/******/ };
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "js/";
/******/
/******/ // install a JSONP callback for chunk loading
/******/ var parentJsonpFunction = window["webpackJsonp"];
/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules) {
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, callbacks = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(installedChunks[chunkId])
/******/ callbacks.push.apply(callbacks, installedChunks[chunkId]);
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ modules[moduleId] = moreModules[moduleId];
/******/ }
/******/ if(parentJsonpFunction) parentJsonpFunction(chunkIds, moreModules);
/******/ while(callbacks.length)
/******/ callbacks.shift().call(null, __webpack_require__);
/******/ if(moreModules[0]) {
/******/ installedModules[0] = 0;
/******/ __webpack_require__(0);
/******/ }
/******/ };
/******/ })
/************************************************************************/
/******/ ({
/***/ 1:
/*!**************************!*\
!*** ./modules/a-b-c.js ***!
\**************************/
/***/ function(module, exports, __webpack_require__) {
/***/ },
/***/ 5:
/*!************************!*\
!*** ./modules/a-b.js ***!
\************************/
/***/ function(module, exports, __webpack_require__) {
/***/ }
/******/ })
```
``` javascript
webpackJsonp([4],[
/* 0 */
/*!******************!*\
!*** ./pageA.js ***!
\******************/
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(/*! ./modules/a-b-c */ 1);
__webpack_require__(/*! ./modules/a-b */ 5);
__webpack_require__(/*! ./modules/a-c */ 3);
/***/ },
/* 1 */,
/* 2 */,
/* 3 */
/*!************************!*\
!*** ./modules/a-c.js ***!
\************************/
/***/ function(module, exports, __webpack_require__) {
/***/ }
])
```
``` javascript
webpackJsonp([6],{
/***/ 2:
/*!**************************!*\
!*** ./modules/admin.js ***!
\**************************/
/***/ function(module, exports, __webpack_require__) {
/***/ }
})
```
``` javascript
webpackJsonp([8],[
/* 0 */
/*!***********************!*\
!*** ./adminPageA.js ***!
\***********************/
/***/ function(module, exports, __webpack_require__) {
__webpack_require__(/*! ./modules/a-b-c */ 1);
__webpack_require__(/*! ./modules/admin */ 2);
/***/ }
])
```
```
Hash: e0239cf99f16d63fc38c
Version: webpack 1.1.0
Time: 76ms
Asset Size Chunks Chunk Names
commons.js 3966 0, 1 [emitted] commons.js
c-commons.js 3790 1 [emitted] c-commons.js
pageC.js 655 2 [emitted] pageC
pageB.js 500 3 [emitted] pageB
pageA.js 491 4 [emitted] pageA
adminPageC.js 458 5, 6 [emitted] adminPageC
admin-commons.js 193 6 [emitted] admin-commons.js
adminPageB.js 277 7 [emitted] adminPageB
adminPageA.js 277 8 [emitted] adminPageA
chunk {0} commons.js (commons.js) 0 [rendered]
[] ./modules/a-b-c.js 0 {0} {1} [built]
cjs require ./modules/a-b-c [0] ./pageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageC.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageC.js 1:0-26
[] ./modules/a-b.js 0 {0} [built]
cjs require ./modules/a-b [0] ./pageA.js 2:0-24
cjs require ./modules/a-b [0] ./pageB.js 2:0-24
chunk {1} c-commons.js (c-commons.js) 0 [rendered]
[] ./modules/a-b-c.js 0 {0} {1} [built]
cjs require ./modules/a-b-c [0] ./pageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageC.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageC.js 1:0-26
chunk {2} pageC.js (pageC) 83 {1} [rendered]
> pageC [0] ./pageC.js
[] ./pageC.js 83 {2} [built]
[] ./modules/a-c.js 0 {2} {4} [built]
cjs require ./modules/a-c [0] ./pageA.js 3:0-24
cjs require ./modules/a-c [0] ./pageC.js 3:0-24
[] ./modules/b-c.js 0 {2} {3} [built]
cjs require ./modules/b-c [0] ./pageB.js 3:0-24
cjs require ./modules/b-c [0] ./pageC.js 2:0-24
chunk {3} pageB.js (pageB) 83 {0} [rendered]
> pageB [0] ./pageB.js
[] ./pageB.js 83 {3} [built]
[] ./modules/b-c.js 0 {2} {3} [built]
cjs require ./modules/b-c [0] ./pageB.js 3:0-24
cjs require ./modules/b-c [0] ./pageC.js 2:0-24
chunk {4} pageA.js (pageA) 83 {0} [rendered]
> pageA [0] ./pageA.js
[] ./pageA.js 83 {4} [built]
[] ./modules/a-c.js 0 {2} {4} [built]
cjs require ./modules/a-c [0] ./pageA.js 3:0-24
cjs require ./modules/a-c [0] ./pageC.js 3:0-24
chunk {5} adminPageC.js (adminPageC) 56 {1} [rendered]
> adminPageC [0] ./adminPageC.js
[] ./adminPageC.js 56 {5} [built]
[] ./modules/admin.js 0 {5} {6} [built]
cjs require ./modules/admin [0] ./adminPageA.js 2:0-26
cjs require ./modules/admin [0] ./adminPageB.js 2:0-26
cjs require ./modules/admin [0] ./adminPageC.js 2:0-26
chunk {6} admin-commons.js (admin-commons.js) 0 {0} [rendered]
[] ./modules/admin.js 0 {5} {6} [built]
cjs require ./modules/admin [0] ./adminPageA.js 2:0-26
cjs require ./modules/admin [0] ./adminPageB.js 2:0-26
cjs require ./modules/admin [0] ./adminPageC.js 2:0-26
chunk {7} adminPageB.js (adminPageB) 56 {6} [rendered]
> adminPageB [0] ./adminPageB.js
[] ./adminPageB.js 56 {7} [built]
chunk {8} adminPageA.js (adminPageA) 56 {6} [rendered]
> adminPageA [0] ./adminPageA.js
[] ./adminPageA.js 56 {8} [built]
```
```
Hash: c3a0430546b82325bf7e
Version: webpack 1.1.0
Time: 263ms
Asset Size Chunks Chunk Names
commons.js 723 0, 1 [emitted] commons.js
c-commons.js 703 1 [emitted] c-commons.js
pageC.js 80 2 [emitted] pageC
pageB.js 68 3 [emitted] pageB
pageA.js 67 4 [emitted] pageA
adminPageC.js 63 5, 6 [emitted] adminPageC
admin-commons.js 35 6 [emitted] admin-commons.js
adminPageB.js 47 7 [emitted] adminPageB
adminPageA.js 47 8 [emitted] adminPageA
chunk {0} commons.js (commons.js) 0 [rendered]
[] ./modules/a-b-c.js 0 {0} {1} [built]
cjs require ./modules/a-b-c [0] ./pageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageC.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageC.js 1:0-26
[] ./modules/a-b.js 0 {0} [built]
cjs require ./modules/a-b [0] ./pageA.js 2:0-24
cjs require ./modules/a-b [0] ./pageB.js 2:0-24
chunk {1} c-commons.js (c-commons.js) 0 [rendered]
[] ./modules/a-b-c.js 0 {0} {1} [built]
cjs require ./modules/a-b-c [0] ./pageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageA.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageC.js 1:0-26
cjs require ./modules/a-b-c [0] ./pageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageB.js 1:0-26
cjs require ./modules/a-b-c [0] ./adminPageC.js 1:0-26
chunk {2} pageC.js (pageC) 83 {1} [rendered]
> pageC [0] ./pageC.js
[] ./pageC.js 83 {2} [built]
[] ./modules/a-c.js 0 {2} {4} [built]
cjs require ./modules/a-c [0] ./pageA.js 3:0-24
cjs require ./modules/a-c [0] ./pageC.js 3:0-24
[] ./modules/b-c.js 0 {2} {3} [built]
cjs require ./modules/b-c [0] ./pageC.js 2:0-24
cjs require ./modules/b-c [0] ./pageB.js 3:0-24
chunk {3} pageB.js (pageB) 83 {0} [rendered]
> pageB [0] ./pageB.js
[] ./pageB.js 83 {3} [built]
[] ./modules/b-c.js 0 {2} {3} [built]
cjs require ./modules/b-c [0] ./pageC.js 2:0-24
cjs require ./modules/b-c [0] ./pageB.js 3:0-24
chunk {4} pageA.js (pageA) 83 {0} [rendered]
> pageA [0] ./pageA.js
[] ./pageA.js 83 {4} [built]
[] ./modules/a-c.js 0 {2} {4} [built]
cjs require ./modules/a-c [0] ./pageA.js 3:0-24
cjs require ./modules/a-c [0] ./pageC.js 3:0-24
chunk {5} adminPageC.js (adminPageC) 56 {1} [rendered]
> adminPageC [0] ./adminPageC.js
[] ./adminPageC.js 56 {5} [built]
[] ./modules/admin.js 0 {5} {6} [built]
cjs require ./modules/admin [0] ./adminPageA.js 2:0-26
cjs require ./modules/admin [0] ./adminPageB.js 2:0-26
cjs require ./modules/admin [0] ./adminPageC.js 2:0-26
chunk {6} admin-commons.js (admin-commons.js) 0 {0} [rendered]
[] ./modules/admin.js 0 {5} {6} [built]
cjs require ./modules/admin [0] ./adminPageA.js 2:0-26
cjs require ./modules/admin [0] ./adminPageB.js 2:0-26
cjs require ./modules/admin [0] ./adminPageC.js 2:0-26
chunk {7} adminPageB.js (adminPageB) 56 {6} [rendered]
> adminPageB [0] ./adminPageB.js
[] ./adminPageB.js 56 {7} [built]
chunk {8} adminPageA.js (adminPageA) 56 {6} [rendered]
> adminPageA [0] ./adminPageA.js
[] ./adminPageA.js 56 {8} [built]
```