Skip to content

Commit 93ebdef

Browse files
authored
fix(vite-node): remove suffix slash on file protocol for window (#6109)
1 parent 407f12f commit 93ebdef

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

packages/vite-node/src/utils.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ export function normalizeRequestId(id: string, base?: string): string {
3737
.replace(/^\/@id\/__x00__/, '\0') // virtual modules start with `\0`
3838
.replace(/^\/@id\//, '')
3939
.replace(/^__vite-browser-external:/, '')
40-
.replace(/^file:/, '')
41-
.replace(/^\/+/, '/') // remove duplicate leading slashes
40+
.replace(/^file:(\/+)/, isWindows ? '' : '/') // remove file protocol and duplicate leading slashes
4241
.replace(/\?v=\w+/, '?') // remove ?v= query
4342
.replace(/&v=\w+/, '') // remove &v= query
4443
.replace(/\?t=\w+/, '?') // remove ?t= query
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { unlinkSync, writeFileSync } from 'node:fs'
2+
import { pathToFileURL } from 'node:url'
3+
import { afterEach, expect, it } from 'vitest'
4+
5+
const filename = 'bar.js'
6+
7+
afterEach(() => unlinkSync(filename))
8+
9+
it('write file and import created file it should return created content.', async () => {
10+
writeFileSync(filename, 'export default 123')
11+
12+
const mod = await import(pathToFileURL(filename).href)
13+
14+
expect(mod.default).toBe(123)
15+
})

0 commit comments

Comments
 (0)