Skip to content

Commit da11d43

Browse files
authored
fix: require.resolve to correct sub node_modules (#3003)
1 parent ddb7a91 commit da11d43

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

packages/vite/src/node/optimizer/esbuildDepPlugin.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ export function esbuildDepPlugin(
8282
}
8383
)
8484

85-
function resolveEntry(id: string, isEntry: boolean) {
85+
function resolveEntry(id: string, isEntry: boolean, resolveDir: string) {
8686
const flatId = flattenId(id)
8787
if (flatId in qualified) {
8888
return isEntry
@@ -91,23 +91,25 @@ export function esbuildDepPlugin(
9191
namespace: 'dep'
9292
}
9393
: {
94-
path: path.resolve(qualified[flatId])
94+
path: require.resolve(flatId, {
95+
paths: [resolveDir]
96+
})
9597
}
9698
}
9799
}
98100

99101
build.onResolve(
100102
{ filter: /^[\w@][^:]/ },
101-
async ({ path: id, importer, kind }) => {
103+
async ({ path: id, importer, kind, resolveDir }) => {
102104
const isEntry = !importer
103105
// ensure esbuild uses our resolved entries
104106
let entry
105107
// if this is an entry, return entry namespace resolve result
106-
if ((entry = resolveEntry(id, isEntry))) return entry
108+
if ((entry = resolveEntry(id, isEntry, resolveDir))) return entry
107109

108110
// check if this is aliased to an entry - also return entry namespace
109111
const aliased = await _resolve(id, undefined, true)
110-
if (aliased && (entry = resolveEntry(aliased, isEntry))) {
112+
if (aliased && (entry = resolveEntry(aliased, isEntry, resolveDir))) {
111113
return entry
112114
}
113115

0 commit comments

Comments
 (0)