diff --git a/lib/dependencies/LoaderPlugin.js b/lib/dependencies/LoaderPlugin.js index b978fc6d9cb..efce35e6ab4 100644 --- a/lib/dependencies/LoaderPlugin.js +++ b/lib/dependencies/LoaderPlugin.js @@ -47,7 +47,7 @@ class LoaderPlugin { ], true, "lm", - false, + true, err => { compilation.semaphore.acquire(() => { if (err) return callback(err); diff --git a/test/cases/loaders/issue-4959/a.js b/test/cases/loaders/issue-4959/a.js new file mode 100644 index 00000000000..6cd1d0075d4 --- /dev/null +++ b/test/cases/loaders/issue-4959/a.js @@ -0,0 +1 @@ +module.exports = "a"; diff --git a/test/cases/loaders/issue-4959/b.js b/test/cases/loaders/issue-4959/b.js new file mode 100644 index 00000000000..554e527d5dc --- /dev/null +++ b/test/cases/loaders/issue-4959/b.js @@ -0,0 +1 @@ +module.exports = require("c"); diff --git a/test/cases/loaders/issue-4959/c.js b/test/cases/loaders/issue-4959/c.js new file mode 100644 index 00000000000..f55ffed587c --- /dev/null +++ b/test/cases/loaders/issue-4959/c.js @@ -0,0 +1 @@ +module.exports = "c"; diff --git a/test/cases/loaders/issue-4959/index.js b/test/cases/loaders/issue-4959/index.js new file mode 100644 index 00000000000..8e0c5179704 --- /dev/null +++ b/test/cases/loaders/issue-4959/index.js @@ -0,0 +1,3 @@ +it("should resolve module dependencies recursively", function() { + require("!./loaders/index!a").should.be.eql("c"); +}); diff --git a/test/cases/loaders/issue-4959/loaders/index.js b/test/cases/loaders/issue-4959/loaders/index.js new file mode 100644 index 00000000000..a9877df5e40 --- /dev/null +++ b/test/cases/loaders/issue-4959/loaders/index.js @@ -0,0 +1,9 @@ +module.exports = function() { + var callback = this.async(); + this.loadModule("b", function(error) { + if (error) { + return callback(error); + } + callback(null, "module.exports = require('b');"); + }); +}; diff --git a/test/cases/loaders/issue-4959/package.json b/test/cases/loaders/issue-4959/package.json new file mode 100644 index 00000000000..240a86856fb --- /dev/null +++ b/test/cases/loaders/issue-4959/package.json @@ -0,0 +1,7 @@ +{ + "browser": { + "a": "./a.js", + "b": "./b.js", + "c": "./c.js" + } +}