From 24e7f5556b996b3182a4ad572326b364e8de025e Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Fri, 24 Jan 2025 20:06:02 +0100 Subject: [PATCH 1/4] fix(nuxt): change default assets filename --- packages/vite/src/vite.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/vite.ts b/packages/vite/src/vite.ts index 85290f78c0..e749b2418e 100644 --- a/packages/vite/src/vite.ts +++ b/packages/vite/src/vite.ts @@ -85,7 +85,7 @@ export const bundle: NuxtBuilder['bundle'] = async (nuxt) => { // https://github.com/vitejs/vite/tree/main/packages/vite/src/node/build.ts#L464-L478 assetFileNames: nuxt.options.dev ? undefined - : chunk => withoutLeadingSlash(join(nuxt.options.app.buildAssetsDir, `${sanitizeFilePath(filename(chunk.name!))}.[hash].[ext]`)), + : chunk => withoutLeadingSlash(join(nuxt.options.app.buildAssetsDir, `${sanitizeFilePath(filename(chunk.name!))}-[hash].[ext]`)), }, }, watch: { From 90fad163beb2f75230c68f510177a6fe54266ccd Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Fri, 24 Jan 2025 20:24:18 +0100 Subject: [PATCH 2/4] test: update regexes --- test/basic.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/basic.test.ts b/test/basic.test.ts index 1253413a1e..9f64e4c82b 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1864,7 +1864,7 @@ describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { // @ts-expect-error ssssh! untyped secret property const publicDir = useTestContext().nuxt._nitro.options.output.publicDir const files = await readdir(join(publicDir, '_nuxt')).catch(() => []) - expect(files.map(m => m.replace(/\.[\w-]+(\.\w+)$/, '$1'))).toContain('css-only-asset.svg') + expect(files.map(m => m.replace(/-[\w-]+(\.\w+)$/, '$1'))).toContain('css-only-asset.svg') }) it('should not include inlined CSS in generated CSS file', async () => { @@ -1892,7 +1892,7 @@ describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { const html: string = await $fetch('/styles') const cssFiles = html.match(/]*href="[^"]*\.css"/g) expect(cssFiles?.length).toBeGreaterThan(0) - expect(cssFiles?.filter(m => m.includes('entry'))?.map(m => m.replace(/\.[^.]*\.css/, '.css'))).toMatchInlineSnapshot(` + expect(cssFiles?.filter(m => m.includes('entry'))?.map(m => m.replace(/-[^-]*\.css/, '.css'))).toMatchInlineSnapshot(` [ " Date: Mon, 27 Jan 2025 00:11:04 +0100 Subject: [PATCH 3/4] test: update fixtures --- test/basic.test.ts | 4 ++-- .../basic/assets/{css-only-asset.svg => css_only_asset.svg} | 0 test/fixtures/basic/assets/global.css | 4 ++-- .../{css-only-public-asset.svg => css_only_public_asset.svg} | 0 4 files changed, 4 insertions(+), 4 deletions(-) rename test/fixtures/basic/assets/{css-only-asset.svg => css_only_asset.svg} (100%) rename test/fixtures/basic/public/{css-only-public-asset.svg => css_only_public_asset.svg} (100%) diff --git a/test/basic.test.ts b/test/basic.test.ts index 9f64e4c82b..546cf389cd 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1864,7 +1864,7 @@ describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { // @ts-expect-error ssssh! untyped secret property const publicDir = useTestContext().nuxt._nitro.options.output.publicDir const files = await readdir(join(publicDir, '_nuxt')).catch(() => []) - expect(files.map(m => m.replace(/-[\w-]+(\.\w+)$/, '$1'))).toContain('css-only-asset.svg') + expect(files.map(m => m.replace(/(-\w+)(\.\w+)$/, '$2'))).toContain('css_only_asset.svg') }) it('should not include inlined CSS in generated CSS file', async () => { @@ -2121,7 +2121,7 @@ describe('public directories', () => { // TODO: dynamic paths in dev describe.skipIf(isDev())('dynamic paths', () => { - const publicFiles = ['/public.svg', '/css-only-public-asset.svg'] + const publicFiles = ['/public.svg', '/css_only_public_asset.svg'] const isPublicFile = (base = '/', file: string) => { if (isWebpack) { // TODO: webpack does not yet support dynamic static paths diff --git a/test/fixtures/basic/assets/css-only-asset.svg b/test/fixtures/basic/assets/css_only_asset.svg similarity index 100% rename from test/fixtures/basic/assets/css-only-asset.svg rename to test/fixtures/basic/assets/css_only_asset.svg diff --git a/test/fixtures/basic/assets/global.css b/test/fixtures/basic/assets/global.css index 81bead5317..12c3b5ca8e 100644 --- a/test/fixtures/basic/assets/global.css +++ b/test/fixtures/basic/assets/global.css @@ -1,5 +1,5 @@ :root { --global: 'global'; - --asset: url('~/assets/css-only-asset.svg'); - --public-asset: url('/css-only-public-asset.svg'); + --asset: url('~/assets/css_only_asset.svg'); + --public-asset: url('/css_only_public_asset.svg'); } diff --git a/test/fixtures/basic/public/css-only-public-asset.svg b/test/fixtures/basic/public/css_only_public_asset.svg similarity index 100% rename from test/fixtures/basic/public/css-only-public-asset.svg rename to test/fixtures/basic/public/css_only_public_asset.svg From 448a504a0ad2cd74dd8ba1c3797fa8df9288fe3d Mon Sep 17 00:00:00 2001 From: Julien Huang Date: Tue, 28 Jan 2025 22:43:27 +0100 Subject: [PATCH 4/4] try better log in ci --- test/basic.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/basic.test.ts b/test/basic.test.ts index 546cf389cd..c7d4870062 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -1864,7 +1864,7 @@ describe.skipIf(isDev() || isWebpack)('inlining component styles', () => { // @ts-expect-error ssssh! untyped secret property const publicDir = useTestContext().nuxt._nitro.options.output.publicDir const files = await readdir(join(publicDir, '_nuxt')).catch(() => []) - expect(files.map(m => m.replace(/(-\w+)(\.\w+)$/, '$2'))).toContain('css_only_asset.svg') + expect(JSON.stringify(files.map(m => m.replace(/(-\w+)(\.\w+)$/, '$2')))).toContain('css_only_asset.svg') }) it('should not include inlined CSS in generated CSS file', async () => {