Skip to content

Commit 439fdad

Browse files
committed
ensure we look at the extension from the "parent" file
If you have a file `./a.js`, and you import `./b`, then `./b` should be resolved based on the `./a.js` extension and use the `jsResolutionOrder`.
1 parent e046a37 commit 439fdad

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

src/lib/getModuleDependencies.js

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,7 @@ function resolveWithExtension(file, extensions) {
3737
return null
3838
}
3939

40-
function* _getModuleDependencies(filename, base, seen) {
41-
let ext = path.extname(filename)
42-
40+
function* _getModuleDependencies(filename, base, seen, ext = path.extname(filename)) {
4341
// Try to find the file
4442
let absoluteFile = resolveWithExtension(
4543
path.resolve(base, filename),
@@ -56,6 +54,7 @@ function* _getModuleDependencies(filename, base, seen) {
5654

5755
// Resolve new base for new imports/requires
5856
base = path.dirname(absoluteFile)
57+
ext = path.extname(absoluteFile)
5958

6059
let contents = fs.readFileSync(absoluteFile, 'utf-8')
6160

@@ -68,7 +67,7 @@ function* _getModuleDependencies(filename, base, seen) {
6867
// Bail out if it's not a relative file
6968
if (!match[1].startsWith('.')) continue
7069

71-
yield* _getModuleDependencies(match[1], base, seen)
70+
yield* _getModuleDependencies(match[1], base, seen, ext)
7271
}
7372
}
7473

0 commit comments

Comments
 (0)