@@ -112,8 +112,9 @@ Compilation.prototype.findModule = function(identifier) {
112112 return this . _modules [ identifier ] ;
113113} ;
114114
115- Compilation . prototype . buildModule = function ( module , thisCallback ) {
116- this . applyPlugins ( "build-module" , module ) ;
115+ Compilation . prototype . buildModule = function ( module , optional , origin , dependencies , thisCallback ) {
116+ var _this = this ;
117+ _this . applyPlugins ( "build-module" , module ) ;
117118 if ( module . building ) return module . building . push ( thisCallback ) ;
118119 var building = module . building = [ thisCallback ] ;
119120
@@ -123,22 +124,28 @@ Compilation.prototype.buildModule = function(module, thisCallback) {
123124 cb ( err ) ;
124125 } ) ;
125126 }
126- module . build ( this . options , this , this . resolvers . normal , this . inputFileSystem , function ( err ) {
127+ module . build ( _this . options , this , _this . resolvers . normal , _this . inputFileSystem , function ( err ) {
127128 module . errors . forEach ( function ( err ) {
128- this . errors . push ( err ) ;
129+ err . origin = origin ;
130+ err . dependencies = dependencies ;
131+ if ( optional )
132+ _this . warnings . push ( err ) ;
133+ else
134+ _this . errors . push ( err ) ;
129135 } , this ) ;
130136 module . warnings . forEach ( function ( err ) {
131- this . warnings . push ( err ) ;
137+ err . origin = origin ;
138+ err . dependencies = dependencies ;
139+ _this . warnings . push ( err ) ;
132140 } , this ) ;
133141 module . dependencies . sort ( Dependency . compare ) ;
134142 if ( err ) {
135- module . error = err ;
136- this . applyPlugins ( "failed-module" , module ) ;
143+ _this . applyPlugins ( "failed-module" , module , err ) ;
137144 return callback ( err ) ;
138145 }
139- this . applyPlugins ( "succeed-module" , module ) ;
146+ _this . applyPlugins ( "succeed-module" , module ) ;
140147 return callback ( ) ;
141- } . bind ( this ) ) ;
148+ } ) ;
142149} ;
143150
144151Compilation . prototype . processModuleDependencies = function ( module , callback ) {
@@ -186,9 +193,7 @@ Compilation.prototype.addModuleDependencies = function(module, dependencies, bai
186193 var dependencies = item [ 1 ] ;
187194
188195 var errorAndCallback = function errorAndCallback ( err ) {
189- err . dependencies = dependencies ;
190196 err . origin = module ;
191- module . dependenciesErrors . push ( err ) ;
192197 _this . errors . push ( err ) ;
193198 if ( bail ) {
194199 callback ( err ) ;
@@ -197,9 +202,7 @@ Compilation.prototype.addModuleDependencies = function(module, dependencies, bai
197202 }
198203 } ;
199204 var warningAndCallback = function warningAndCallback ( err ) {
200- err . dependencies = dependencies ;
201205 err . origin = module ;
202- module . dependenciesWarnings . push ( err ) ;
203206 _this . warnings . push ( err ) ;
204207 callback ( ) ;
205208 } ;
@@ -220,7 +223,7 @@ Compilation.prototype.addModuleDependencies = function(module, dependencies, bai
220223 }
221224 }
222225 if ( err ) {
223- return errorOrWarningAndCallback ( new ModuleNotFoundError ( module , err ) ) ;
226+ return errorOrWarningAndCallback ( new ModuleNotFoundError ( module , err , dependencies ) ) ;
224227 }
225228 if ( ! dependentModule ) {
226229 return process . nextTick ( callback ) ;
@@ -233,7 +236,7 @@ Compilation.prototype.addModuleDependencies = function(module, dependencies, bai
233236 dependentModule . profile . factory = afterFactory - start ;
234237 }
235238
236- dependentModule . issuer = module . identifier ( ) ;
239+ dependentModule . issuer = module ;
237240 var newModule = _this . addModule ( dependentModule , cacheGroup ) ;
238241
239242 if ( ! newModule ) { // from cache
@@ -294,7 +297,7 @@ Compilation.prototype.addModuleDependencies = function(module, dependencies, bai
294297 dependentModule . addReason ( module , dep ) ;
295298 } ) ;
296299
297- _this . buildModule ( dependentModule , function ( err ) {
300+ _this . buildModule ( dependentModule , isOptional ( ) , module , dependencies , function ( err ) {
298301 if ( err ) {
299302 return errorOrWarningAndCallback ( err ) ;
300303 }
@@ -383,7 +386,7 @@ Compilation.prototype._addModuleChain = function process(context, dependency, on
383386
384387 onModule ( module ) ;
385388
386- this . buildModule ( module , function ( err ) {
389+ this . buildModule ( module , false , null , null , function ( err ) {
387390 if ( err ) {
388391 return errorAndCallback ( err ) ;
389392 }
@@ -455,7 +458,7 @@ Compilation.prototype.rebuildModule = function(module, thisCallback) {
455458 } ) ;
456459 }
457460 var deps = module . dependencies . slice ( ) ;
458- this . buildModule ( module , function ( err ) {
461+ this . buildModule ( module , false , module , null , function ( err ) {
459462 if ( err ) return callback ( err ) ;
460463
461464 this . processModuleDependencies ( module , function ( err ) {
@@ -658,10 +661,6 @@ Compilation.prototype.processDependenciesBlockForChunk = function processDepende
658661 if ( d . weak ) {
659662 return ;
660663 }
661- if ( d . module . error ) {
662- d . module = null ;
663- return ;
664- }
665664 if ( chunk . addModule ( d . module ) ) {
666665 d . module . addChunk ( chunk ) ;
667666 this . processDependenciesBlockForChunk ( d . module , chunk ) ;
0 commit comments