@@ -9,6 +9,7 @@ var Parser = require("./Parser");
99var Dependency = require ( "./Dependency" ) ;
1010var EntryModuleNotFoundError = require ( "./EntryModuleNotFoundError" ) ;
1111var ModuleNotFoundError = require ( "./ModuleNotFoundError" ) ;
12+ var CriticalDependenciesWarning = require ( "./CriticalDependenciesWarning" ) ;
1213var Module = require ( "./Module" ) ;
1314var ArrayMap = require ( "./ArrayMap" ) ;
1415var Chunk = require ( "./Chunk" ) ;
@@ -20,10 +21,9 @@ function Compilation(compiler) {
2021 this . mainTemplate = compiler . mainTemplate ;
2122 this . chunkTemplate = compiler . chunkTemplate ;
2223 this . moduleTemplate = compiler . moduleTemplate ;
23- this . options = compiler . options ;
2424 this . resolvers = compiler . resolvers ;
2525 this . inputFileSystem = compiler . inputFileSystem ;
26- var options = compiler . options ;
26+ var options = this . options = compiler . options ;
2727 this . outputOptions = options && options . output ;
2828 this . bail = options && options . bail ;
2929 this . entries = [ ] ;
@@ -116,6 +116,11 @@ Compilation.prototype.processModuleDependencies = function(module, callback) {
116116 }
117117 async . forEach ( factories , function ( item , callback ) {
118118 var dependencies = item [ 1 ] ;
119+ var criticalDependencies = dependencies . filter ( function ( d ) { return ! ! d . critical } ) ;
120+ if ( criticalDependencies . length > 0 ) {
121+ this . warnings . push ( new CriticalDependenciesWarning ( module , criticalDependencies ) ) ;
122+ }
123+
119124 var errorAndCallback = function errorAndCallback ( err ) {
120125 err . dependencies = dependencies ;
121126 err . origin = module ;
@@ -132,13 +137,13 @@ Compilation.prototype.processModuleDependencies = function(module, callback) {
132137 var factory = item [ 0 ] ;
133138 factory . create ( module . context , dependencies [ 0 ] , function ( err , dependantModule ) {
134139 function isOptional ( ) {
135- return dependencies . filter ( function ( d ) { return ! d . optional } ) . length > 0 ;
140+ return dependencies . filter ( function ( d ) { return ! d . optional } ) . length == 0 ;
136141 }
137142 function errorOrWarningAndCallback ( err ) {
138143 if ( isOptional ( ) )
139- return errorAndCallback ( err ) ;
140- else
141144 return warningAndCallback ( err ) ;
145+ else
146+ return errorAndCallback ( err ) ;
142147 }
143148 if ( err ) return errorOrWarningAndCallback ( new ModuleNotFoundError ( module , err ) ) ;
144149 if ( ! dependantModule ) return callback ( ) ;
0 commit comments