@@ -161,21 +161,35 @@ ${` default: return new Promise(function(resolve, reject) {
161
161
if ( importMetaUrlType === 'static' ) {
162
162
const absoluteScriptDir = path . dirname ( id ) ;
163
163
const relativeAssetPath = getRelativeAssetPath ( node ) ;
164
- const absoluteAssetPath = path . resolve ( absoluteScriptDir , relativeAssetPath ) ;
165
- const assetName = path . basename ( absoluteAssetPath ) ;
166
164
167
165
try {
168
- const assetContents = await fs . promises . readFile ( absoluteAssetPath ) ;
166
+ const resolved = await this . resolve ( relativeAssetPath , id ) ;
167
+ if ( resolved == null ) {
168
+ // Do not process directories, just skip
169
+ const absoluteAssetPath = path . resolve ( absoluteScriptDir , relativeAssetPath ) ;
170
+ try {
171
+ if ( fs . lstatSync ( absoluteAssetPath ) . isDirectory ( ) ) {
172
+ return ;
173
+ }
174
+ } catch ( error ) {
175
+ // ignore, the file probably doesn't exists
176
+ }
177
+ this . error ( `Unable to resolve "${ relativeAssetPath } " from "${ id } "` ) ;
178
+ return ;
179
+ }
180
+ if ( resolved . external ) {
181
+ return ;
182
+ }
183
+
184
+ const assetContents = await fs . promises . readFile ( resolved . id ) ;
169
185
const transformedAssetContents =
170
- transform != null
171
- ? await transform ( assetContents , absoluteAssetPath )
172
- : assetContents ;
186
+ transform != null ? await transform ( assetContents , resolved . id ) : assetContents ;
173
187
if ( transformedAssetContents === null ) {
174
188
return ;
175
189
}
176
190
const ref = this . emitFile ( {
177
191
type : 'asset' ,
178
- name : assetName ,
192
+ name : path . basename ( resolved . id ) ,
179
193
source : transformedAssetContents ,
180
194
} ) ;
181
195
magicString . overwrite (
@@ -185,13 +199,10 @@ ${` default: return new Promise(function(resolve, reject) {
185
199
) ;
186
200
modifiedCode = true ;
187
201
} catch ( error ) {
188
- // Do not process directories, just skip
189
- if ( error . code !== 'EISDIR' ) {
190
- if ( warnOnError ) {
191
- this . warn ( error , node . arguments [ 0 ] . start ) ;
192
- } else {
193
- this . error ( error , node . arguments [ 0 ] . start ) ;
194
- }
202
+ if ( warnOnError ) {
203
+ this . warn ( error , node . arguments [ 0 ] . start ) ;
204
+ } else {
205
+ this . error ( error , node . arguments [ 0 ] . start ) ;
195
206
}
196
207
}
197
208
}
0 commit comments