Skip to content

Commit 23c3e7c

Browse files
authored
Merge pull request #340 from webpack/fix/issues-118
use only alias field properties
2 parents c960801 + 6460447 commit 23c3e7c

File tree

4 files changed

+15
-3
lines changed

4 files changed

+15
-3
lines changed

lib/AliasFieldPlugin.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,14 @@ module.exports = class AliasFieldPlugin {
4949
);
5050
return callback();
5151
}
52-
const data1 = fieldData[innerRequest];
53-
const data2 = fieldData[innerRequest.replace(/^\.\//, "")];
54-
const data = typeof data1 !== "undefined" ? data1 : data2;
52+
const data = Object.prototype.hasOwnProperty.call(
53+
fieldData,
54+
innerRequest
55+
)
56+
? fieldData[innerRequest]
57+
: innerRequest.startsWith("./")
58+
? fieldData[innerRequest.slice(2)]
59+
: undefined;
5560
if (data === innerRequest) return callback();
5661
if (data === undefined) return callback();
5762
if (data === false) {

test/browserField.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,4 +84,10 @@ describe("browserField", function () {
8484
.resolveSync({}, p(), "./lib/main2.js")
8585
.should.be.eql(p("lib", "browser.js"));
8686
});
87+
88+
it("should check only alias field properties", () => {
89+
resolver
90+
.resolveSync({}, p(), "./toString")
91+
.should.be.eql(p("lib", "toString.js"));
92+
});
8793
});

test/fixtures/browser-module/lib/toString.js

Whitespace-only changes.

test/fixtures/browser-module/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
"./lib/replaced.js": "./lib/browser",
55
"module-a": "./browser/module-a.js",
66
"module-b": "module-c",
7+
"./toString": "./lib/toString.js",
78
".": false
89
},
910
"innerBrowser1": {

0 commit comments

Comments
 (0)