@@ -80,6 +80,24 @@ export function esbuildDepPlugin(
80
80
return resolver ( id , _importer , undefined )
81
81
}
82
82
83
+ const resolveResult = ( id : string , resolved : string ) => {
84
+ if ( resolved . startsWith ( browserExternalId ) ) {
85
+ return {
86
+ path : id ,
87
+ namespace : 'browser-external'
88
+ }
89
+ }
90
+ if ( isExternalUrl ( resolved ) ) {
91
+ return {
92
+ path : resolved ,
93
+ external : true
94
+ }
95
+ }
96
+ return {
97
+ path : path . resolve ( resolved )
98
+ }
99
+ }
100
+
83
101
return {
84
102
name : 'vite:dep-pre-bundle' ,
85
103
setup ( build ) {
@@ -156,21 +174,7 @@ export function esbuildDepPlugin(
156
174
// use vite's own resolver
157
175
const resolved = await resolve ( id , importer , kind )
158
176
if ( resolved ) {
159
- if ( resolved . startsWith ( browserExternalId ) ) {
160
- return {
161
- path : id ,
162
- namespace : 'browser-external'
163
- }
164
- }
165
- if ( isExternalUrl ( resolved ) ) {
166
- return {
167
- path : resolved ,
168
- external : true
169
- }
170
- }
171
- return {
172
- path : path . resolve ( resolved )
173
- }
177
+ return resolveResult ( id , resolved )
174
178
}
175
179
}
176
180
)
@@ -258,11 +262,20 @@ module.exports = Object.create(new Proxy({}, {
258
262
if ( isRunningWithYarnPnp ) {
259
263
build . onResolve (
260
264
{ filter : / .* / } ,
261
- async ( { path, importer, kind, resolveDir } ) => ( {
262
- // pass along resolveDir for entries
263
- path : await resolve ( path , importer , kind , resolveDir )
264
- } )
265
+ async ( { path : id , importer, kind, resolveDir, namespace } ) => {
266
+ const resolved = await resolve (
267
+ id ,
268
+ importer ,
269
+ kind ,
270
+ // pass along resolveDir for entries
271
+ namespace === 'dep' ? resolveDir : undefined
272
+ )
273
+ if ( resolved ) {
274
+ return resolveResult ( id , resolved )
275
+ }
276
+ }
265
277
)
278
+
266
279
build . onLoad ( { filter : / .* / } , async ( args ) => ( {
267
280
contents : await fs . readFile ( args . path ) ,
268
281
loader : 'default'
0 commit comments