@@ -194,9 +194,13 @@ Compilation.prototype.addModuleDependencies = function(module, dependencies, bai
194194 dependantModule . issuer = module . identifier ( ) ;
195195 var newModule = this . addModule ( dependantModule , cacheGroup ) ;
196196
197- if ( ! newModule ) {
197+ if ( ! newModule ) { // from cache
198198 dependantModule = this . getModule ( dependantModule ) ;
199199
200+ if ( dependantModule . id === 0 ) return errorOrWarningAndCallback (
201+ new ModuleNotFoundError ( module , new Error ( "a dependency to an entry point is not allowed" ) )
202+ ) ;
203+
200204 dependencies . forEach ( function ( dep ) {
201205 dep . module = dependantModule ;
202206 dependantModule . addReason ( module , dep ) ;
@@ -212,7 +216,7 @@ Compilation.prototype.addModuleDependencies = function(module, dependencies, bai
212216 return callback ( ) ;
213217 }
214218
215- if ( newModule instanceof Module ) { // from cache
219+ if ( newModule instanceof Module ) {
216220 if ( this . profile )
217221 newModule . profile = dependantModule . profile ;
218222
@@ -337,6 +341,7 @@ Compilation.prototype.addEntry = function process(context, entry, name, callback
337341 if ( err ) return callback ( err ) ;
338342
339343 if ( module ) {
344+ if ( module . reasons . length > 0 ) return callback ( new Error ( "module cannot be added as entry point, because its already in the bundle" ) ) ;
340345 this . preparedChunks . push ( {
341346 name : name ,
342347 module : module
@@ -486,6 +491,9 @@ Compilation.prototype.sortItems = function sortItems() {
486491 this . modules . sort ( byId ) ;
487492 this . modules . forEach ( function ( module ) {
488493 module . chunks . sort ( byId ) ;
494+ module . reasons . sort ( function ( a , b ) {
495+ return byId ( a . module , b . module )
496+ } ) ;
489497 } ) ;
490498 this . chunks . forEach ( function ( chunk ) {
491499 chunk . modules . sort ( byId ) ;
0 commit comments