From de98e0b232509d5f40c135d540a70e415272ff85 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 3 May 2017 15:35:00 +0200 Subject: node_modules --- .../webpack/lib/dependencies/LoaderPlugin.js | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 node_modules/webpack/lib/dependencies/LoaderPlugin.js (limited to 'node_modules/webpack/lib/dependencies/LoaderPlugin.js') diff --git a/node_modules/webpack/lib/dependencies/LoaderPlugin.js b/node_modules/webpack/lib/dependencies/LoaderPlugin.js new file mode 100644 index 000000000..a565ebbc4 --- /dev/null +++ b/node_modules/webpack/lib/dependencies/LoaderPlugin.js @@ -0,0 +1,60 @@ +/* + MIT License http://www.opensource.org/licenses/mit-license.php + Author Tobias Koppers @sokra +*/ +"use strict"; + +const LoaderDependency = require("./LoaderDependency"); + +class LoaderPlugin { + + apply(compiler) { + compiler.plugin("compilation", (compilation, params) => { + const normalModuleFactory = params.normalModuleFactory; + + compilation.dependencyFactories.set(LoaderDependency, normalModuleFactory); + }); + compiler.plugin("compilation", (compilation) => { + compilation.plugin("normal-module-loader", (loaderContext, module) => { + loaderContext.loadModule = function loadModule(request, callback) { + const dep = new LoaderDependency(request); + dep.loc = request; + compilation.addModuleDependencies(module, [ + [dep] + ], true, "lm", false, (err) => { + if(err) return callback(err); + + if(!dep.module) return callback(new Error("Cannot load the module")); + if(dep.module.building) dep.module.building.push(next); + else next(); + + function next(err) { + if(err) return callback(err); + + if(dep.module.error) return callback(dep.module.error); + if(!dep.module._source) throw new Error("The module created for a LoaderDependency must have a property _source"); + let source, map; + const moduleSource = dep.module._source; + if(moduleSource.sourceAndMap) { + const sourceAndMap = moduleSource.sourceAndMap(); + map = sourceAndMap.map; + source = sourceAndMap.source; + } else { + map = moduleSource.map(); + source = moduleSource.source(); + } + if(dep.module.fileDependencies) { + dep.module.fileDependencies.forEach((dep) => loaderContext.addDependency(dep)); + } + if(dep.module.contextDependencies) { + dep.module.contextDependencies.forEach((dep) => loaderContext.addContextDependency(dep)); + } + return callback(null, source, map, dep.module); + } + }); + }; + }); + }); + } +} +module.exports = LoaderPlugin; -- cgit v1.2.3