diff --git a/lib/index.js b/lib/index.js index 2a24fb5..64cbe1b 100644 --- a/lib/index.js +++ b/lib/index.js @@ -28,10 +28,8 @@ UnusedFilesWebpackPlugin.prototype._applyAfterEmit = function(compiler, compilat glob(this.options.pattern, globOptions, onGlobResult); - var fileDepsBy = compilation.fileDependencies.reduce(function (acc, usedFilepath) { - acc[usedFilepath] = usedFilepath; - return acc; - }, {}); + var fileDepsMap = this._getFileDepsMap(compilation); + var absolutePathResolver = Path.join.bind(Path, globOptions.cwd); function onGlobResult (err, files) { @@ -39,7 +37,7 @@ UnusedFilesWebpackPlugin.prototype._applyAfterEmit = function(compiler, compilat compilation.errors.push(err); } else { var unused = files.filter(function (filepath) { - return !(absolutePathResolver(filepath) in fileDepsBy); + return !(absolutePathResolver(filepath) in fileDepsMap); }); if (unused.length) { var errmsg = "UnusedFilesWebpackPlugin found some unused files:\n" + unused.join("\n"); @@ -51,5 +49,18 @@ UnusedFilesWebpackPlugin.prototype._applyAfterEmit = function(compiler, compilat } }; +UnusedFilesWebpackPlugin.prototype._getFileDepsMap = function (compilation) { + var fileDepsBy = {}; + compilation.fileDependencies.forEach(function (usedFilepath) { + fileDepsBy[usedFilepath] = usedFilepath; + }); + + Object.keys(compilation.assets).forEach(function (assetRelpath) { + var existsAt = this[assetRelpath].existsAt; + fileDepsBy[existsAt] = existsAt; + }, compilation.assets); + + return fileDepsBy; +}; module.exports = UnusedFilesWebpackPlugin;