aboutsummaryrefslogtreecommitdiff
path: root/node_modules/webpack/lib/dependencies/RequireContextPlugin.js
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/webpack/lib/dependencies/RequireContextPlugin.js
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
node_modules
Diffstat (limited to 'node_modules/webpack/lib/dependencies/RequireContextPlugin.js')
-rw-r--r--node_modules/webpack/lib/dependencies/RequireContextPlugin.js31
1 files changed, 25 insertions, 6 deletions
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);