1+ /*
2+ MIT License http://www.opensource.org/licenses/mit-license.php
3+ Author Tobias Koppers @sokra
4+ */
5+ var StringSource = require ( "webpack-core/lib/RawSource" ) ;
6+
7+ function NodeMainTemplate ( outputOptions ) {
8+ this . outputOptions = outputOptions || { } ;
9+ }
10+ module . exports = NodeMainTemplate ;
11+
12+ var REGEXP_HASH = / \[ h a s h \] / i;
13+ var REGEXP_NAME = / \[ n a m e \] / g;
14+ var REGEXP_ID = / \[ i d \] / i;
15+ NodeMainTemplate . prototype . render = function ( hash , chunk , moduleTemplate , dependencyTemplates ) {
16+ var filename = this . outputOptions . filename || "bundle.js" ;
17+ var chunkFilename = this . outputOptions . chunkFilename || "[id]." + filename ;
18+ var buf = [ ] ;
19+ function addLine ( indent , line ) {
20+ buf . push ( "/******/ " ) ;
21+ for ( var i = 0 ; i < indent ; i ++ )
22+ buf . push ( "\t" ) ;
23+ buf . push ( line ) ;
24+ buf . push ( "\n" ) ;
25+ }
26+ function addRequireFunc ( i ) {
27+ addLine ( i + 0 , "function __require(moduleId) {" ) ;
28+ addLine ( i + 1 , "if(typeof moduleId !== \"number\") throw new Error(\"Cannot find module '\"+moduleId+\"'\");" ) ;
29+ addLine ( i + 1 , "if(installedModules[moduleId])" ) ;
30+ addLine ( i + 2 , "return installedModules[moduleId].exports;" ) ;
31+ addLine ( i + 1 , "var module = installedModules[moduleId] = {" ) ;
32+ addLine ( i + 2 , "exports: {}," ) ;
33+ addLine ( i + 2 , "id: moduleId," ) ;
34+ addLine ( i + 2 , "loaded: false" ) ;
35+ addLine ( i + 1 , "};" ) ;
36+ addLine ( i + 1 , "modules[moduleId].call(null, module, module.exports, __require);" ) ;
37+ addLine ( i + 1 , "module.loaded = true;" ) ;
38+ addLine ( i + 1 , "return module.exports;" ) ;
39+ addLine ( i + 0 , "}" ) ;
40+ }
41+ addLine ( 0 , "(function webpackBootstrap(modules) {" ) ;
42+ addLine ( 1 , "var installedModules = {};" ) ;
43+ addRequireFunc ( 1 ) ;
44+ addLine ( 1 , "__require.e = function requireEnsure(chunkId, callback) {" ) ;
45+ if ( chunk . chunks . length == 0 ) {
46+ addLine ( 2 , "callback.call(null, __require);" ) ;
47+ } else {
48+ addLine ( 2 , "if(installedChunks[chunkId] === 1) return callback.call(null, __require);" ) ;
49+ addLine ( 2 , "var moreModules = require(" + JSON . stringify ( "./" + chunkFilename . replace ( REGEXP_HASH , hash ) . replace ( REGEXP_NAME , "" ) ) . replace ( REGEXP_ID , "\"+chunkId+\"" ) + ");" ) ;
50+ addLine ( 2 , "for(var moduleId in moreModules)" ) ;
51+ addLine ( 3 , "modules[moduleId] = moreModules[moduleId];" ) ;
52+ addLine ( 2 , "callback.call(null, __require);" ) ;
53+ }
54+ addLine ( 1 , "};" ) ;
55+ addLine ( 1 , "__require.modules = modules;" ) ;
56+ addLine ( 1 , "__require.cache = installedModules;" ) ;
57+ addLine ( 1 , "__require.parentRequire = require;" ) ;
58+ if ( chunk . chunks . length > 0 ) {
59+ addLine ( 1 , "var installedChunks = {0:1};" ) ;
60+ }
61+ addLine ( 1 , "return __require(0);" ) ;
62+ addLine ( 0 , "})({" ) ;
63+ addLine ( 0 , "c: __dirname," ) ;
64+ chunk . modules . forEach ( function ( module , idx ) {
65+ if ( idx != 0 ) buf . push ( ",\n" ) ;
66+ buf . push ( "\n/***/ " + module . id + ":\n" ) ;
67+ var source = moduleTemplate . render ( module , dependencyTemplates ) ;
68+ buf . push ( source . source ( ) ) ;
69+ } ) ;
70+ buf . push ( "\n" ) ;
71+ addLine ( 0 , "})" ) ;
72+ return new StringSource ( buf . join ( "" ) ) ;
73+ } ;
74+
75+ NodeMainTemplate . prototype . updateHash = function ( hash ) {
76+ hash . update ( "node" ) ;
77+ hash . update ( "1" ) ;
78+ hash . update ( this . outputOptions . filename + "" ) ;
79+ hash . update ( this . outputOptions . chunkFilename + "" ) ;
80+ } ;
0 commit comments