Skip to content

Commit 1ec86f3

Browse files
authored
Merge pull request #293 from webpack/bugfix/imports-sub-path
2 parents 58b325c + c6804f6 commit 1ec86f3

File tree

3 files changed

+17
-8
lines changed

3 files changed

+17
-8
lines changed

lib/ImportsFieldPlugin.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,9 @@ module.exports = class ImportsFieldPlugin {
5454
.getHook(this.source)
5555
.tapAsync("ImportsFieldPlugin", (request, resolveContext, callback) => {
5656
// When there is no description file, abort
57-
if (!request.descriptionFilePath) return callback();
58-
59-
if (
60-
// When the description file is inherited from parent, abort
61-
// (There is no description file inside of this package)
62-
request.relativePath !== "." ||
63-
request.request === undefined
64-
)
57+
if (!request.descriptionFilePath || request.request === undefined) {
6558
return callback();
59+
}
6660

6761
const remainingRequest =
6862
request.request + request.query + request.fragment;

test/fixtures/imports-field/dir/b.js

Whitespace-only changes.

test/importsField.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1196,6 +1196,21 @@ describe("ImportsFieldPlugin", () => {
11961196
});
11971197
});
11981198

1199+
it("should resolve using imports field instead of self-referencing for a subpath", done => {
1200+
resolver.resolve(
1201+
{},
1202+
path.resolve(fixture, "dir"),
1203+
"#imports-field",
1204+
{},
1205+
(err, result) => {
1206+
if (err) return done(err);
1207+
if (!result) throw new Error("No result");
1208+
result.should.equal(path.resolve(fixture, "b.js"));
1209+
done();
1210+
}
1211+
);
1212+
});
1213+
11991214
it("should resolve out of package scope", done => {
12001215
resolver.resolve({}, fixture, "#b", {}, (err, result) => {
12011216
if (err) return done(err);

0 commit comments

Comments
 (0)