Skip to content
This repository was archived by the owner on Apr 6, 2023. It is now read-only.

Commit fd6d1d4

Browse files
authored
fix(vite): sanitize client asset chunk names (#7067)
1 parent afc9d9b commit fd6d1d4

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

packages/vite/src/client.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ import { getPort } from 'get-port-please'
88
import { joinURL, withLeadingSlash, withoutLeadingSlash, withTrailingSlash } from 'ufo'
99
import escapeRE from 'escape-string-regexp'
1010
import defu from 'defu'
11+
import { sanitizeFilePath } from 'mlly'
12+
import { filename } from 'pathe/utils'
13+
import type { OutputOptions } from 'rollup'
1114
import { cacheDirPlugin } from './plugins/cache-dir'
1215
import { wpfs } from './utils/wpfs'
1316
import type { ViteBuildContext, ViteOptions } from './vite'
@@ -76,14 +79,16 @@ export async function buildClient (ctx: ViteBuildContext) {
7679
}
7780

7881
// We want to respect users' own rollup output options
79-
ctx.config.build!.rollupOptions = defu(ctx.config.build!.rollupOptions!, {
82+
clientConfig.build!.rollupOptions = defu(clientConfig.build!.rollupOptions!, {
8083
output: {
8184
// https://github.com/vitejs/vite/tree/main/packages/vite/src/node/build.ts#L464-L478
82-
assetFileNames: ctx.nuxt.options.dev ? undefined : withoutLeadingSlash(join(ctx.nuxt.options.app.buildAssetsDir, '[name].[hash].[ext]')),
85+
assetFileNames: ctx.nuxt.options.dev
86+
? undefined
87+
: chunk => withoutLeadingSlash(join(ctx.nuxt.options.app.buildAssetsDir, `${sanitizeFilePath(filename(chunk.name!))}.[hash].[ext]`)),
8388
chunkFileNames: ctx.nuxt.options.dev ? undefined : withoutLeadingSlash(join(ctx.nuxt.options.app.buildAssetsDir, '[name].[hash].js')),
8489
entryFileNames: ctx.nuxt.options.dev ? 'entry.js' : withoutLeadingSlash(join(ctx.nuxt.options.app.buildAssetsDir, '[name].[hash].js'))
85-
}
86-
})
90+
} as OutputOptions
91+
}) as any
8792

8893
if (clientConfig.server && clientConfig.server.hmr !== false) {
8994
const hmrPortDefault = 24678 // Vite's default HMR port

0 commit comments

Comments
 (0)