Skip to content

Commit 6561708

Browse files
authored
Fix pathname parsing for tracked files (#5008)
The trackedModified call in the tracking logic has a bug that incorrectly removes `null` from pathnames Currently: ``` let pathname = parsed.href.replace(parsed.hash, '').replace(parsed.search, '') ``` Where if `parsed.hash` or `parsed.search` are missing (which is mostly the case for FS files), the value is null eg `{ hash: null, search: null}` - In which case, we essentially trim `null` converting `/mypath/nulldir/file.js` -> `/mypath/dir/filejs` and breaking builds (see #4920 ). Fix checks if `hash` or `search` are set before replacing them Fixes #4920
1 parent 8218aa6 commit 6561708

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/jit/lib/setupContextUtils.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,8 @@ function trackModified(files, fileModifiedMap) {
379379
if (!file) continue
380380

381381
let parsed = url.parse(file)
382-
let pathname = parsed.href.replace(parsed.hash, '').replace(parsed.search, '')
382+
let pathname = parsed.hash ? parsed.href.replace(parsed.hash, '') : parsed.href
383+
pathname = parsed.search ? pathname.replace(parsed.search, '') : pathname
383384
let newModified = fs.statSync(decodeURIComponent(pathname)).mtimeMs
384385

385386
if (!fileModifiedMap.has(file) || newModified > fileModifiedMap.get(file)) {

0 commit comments

Comments
 (0)