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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy