Skip to content

Commit 82412c4

Browse files
authored
Merge pull request #333 from webpack/fix/absolute-path-alias
fix absolute path alias
2 parents 26001c4 + 43c03a8 commit 82412c4

File tree

4 files changed

+34
-4
lines changed

4 files changed

+34
-4
lines changed

lib/AliasPlugin.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,12 @@ module.exports = class AliasPlugin {
4141
let shouldStop = false;
4242
if (
4343
innerRequest === item.name ||
44-
(!item.onlyModule && innerRequest.startsWith(item.name + "/"))
44+
(!item.onlyModule &&
45+
innerRequest.startsWith(
46+
request.request
47+
? `${item.name}/`
48+
: resolver.join(item.name, "_").slice(0, -1)
49+
))
4550
) {
4651
const remainingRequest = innerRequest.substr(item.name.length);
4752
const resolveWithAlias = (alias, callback) => {

test/alias.js

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
require("should");
1+
const should = require("should");
22

3-
var { Volume } = require("memfs");
4-
var { ResolverFactory } = require("../");
3+
const path = require("path");
4+
const { Volume } = require("memfs");
5+
const { ResolverFactory } = require("../");
6+
const CachedInputFileSystem = require("../lib/CachedInputFileSystem");
7+
const fs = require("fs");
8+
9+
const nodeFileSystem = new CachedInputFileSystem(fs, 4000);
510

611
describe("alias", function () {
712
var resolver;
@@ -144,4 +149,20 @@ describe("alias", function () {
144149
}
145150
);
146151
});
152+
153+
it("should work with absolute paths", done => {
154+
const resolver = ResolverFactory.createResolver({
155+
alias: {
156+
[path.resolve(__dirname, "fixtures", "foo")]: false
157+
},
158+
modules: path.resolve(__dirname, "fixtures"),
159+
fileSystem: nodeFileSystem
160+
});
161+
162+
resolver.resolve({}, __dirname, "foo/index", {}, (err, result) => {
163+
if (err) done(err);
164+
should(result).be.eql(false);
165+
done();
166+
});
167+
});
147168
});

test/fixtures/foo/index.js

Whitespace-only changes.

test/fixtures/foo/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"name": "foo",
3+
"version": "1.0.0"
4+
}

0 commit comments

Comments
 (0)