From 363723fc84f7b8477592e0105aeb331ec9a017af Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Mon, 14 Aug 2017 05:01:11 +0200 Subject: node_modules --- .../lib/dependencies/RequireContextPlugin.js | 31 +++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'node_modules/webpack/lib/dependencies/RequireContextPlugin.js') diff --git a/node_modules/webpack/lib/dependencies/RequireContextPlugin.js b/node_modules/webpack/lib/dependencies/RequireContextPlugin.js index 57acda586..3e08729d3 100644 --- a/node_modules/webpack/lib/dependencies/RequireContextPlugin.js +++ b/node_modules/webpack/lib/dependencies/RequireContextPlugin.js @@ -10,18 +10,17 @@ const ContextElementDependency = require("./ContextElementDependency"); const RequireContextDependencyParserPlugin = require("./RequireContextDependencyParserPlugin"); class RequireContextPlugin { - constructor(modulesDirectories, extensions) { + constructor(modulesDirectories, extensions, mainFiles) { if(!Array.isArray(modulesDirectories)) throw new Error("modulesDirectories must be an array"); if(!Array.isArray(extensions)) throw new Error("extensions must be an array"); this.modulesDirectories = modulesDirectories; this.extensions = extensions; + this.mainFiles = mainFiles; } apply(compiler) { - const modulesDirectories = this.modulesDirectories; - const extensions = this.extensions; compiler.plugin("compilation", (compilation, params) => { const contextModuleFactory = params.contextModuleFactory; const normalModuleFactory = params.normalModuleFactory; @@ -43,7 +42,7 @@ class RequireContextPlugin { if(items.length === 0) return callback(null, items); callback(null, items.map((obj) => { - return extensions.filter((ext) => { + return this.extensions.filter((ext) => { const l = obj.request.length; return l > ext.length && obj.request.substr(l - ext.length, l) === ext; }).map((ext) => { @@ -60,8 +59,28 @@ class RequireContextPlugin { if(items.length === 0) return callback(null, items); callback(null, items.map((obj) => { - for(let i = 0; i < modulesDirectories.length; i++) { - const dir = modulesDirectories[i]; + return this.mainFiles.filter((mainFile) => { + const l = obj.request.length; + return l > mainFile.length + 1 && obj.request.substr(l - mainFile.length - 1, l) === "/" + mainFile; + }).map((mainFile) => { + const l = obj.request.length; + return [{ + context: obj.context, + request: obj.request.substr(0, l - mainFile.length) + }, { + context: obj.context, + request: obj.request.substr(0, l - mainFile.length - 1) + }]; + }).reduce((a, b) => a.concat(b), []).concat(obj); + }).reduce((a, b) => a.concat(b), [])); + }); + + params.contextModuleFactory.plugin("alternatives", (items, callback) => { + if(items.length === 0) return callback(null, items); + + callback(null, items.map((obj) => { + for(let i = 0; i < this.modulesDirectories.length; i++) { + const dir = this.modulesDirectories[i]; const idx = obj.request.indexOf("./" + dir + "/"); if(idx === 0) { obj.request = obj.request.slice(dir.length + 3); -- cgit v1.2.3