From 478f4caef6a8f3048cbcf1bcc210de9622c8cd3f Mon Sep 17 00:00:00 2001 From: thomasRalee Date: Mon, 25 Jul 2022 17:45:53 +0800 Subject: [PATCH 1/4] fix: css file rendered as type="module" script tag --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 3562c6cabe9..bfd39df91ab 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -83,7 +83,9 @@ const getSPARenderer = lazyCachedFunction(async () => { if ('all' in clientManifest && 'initial' in clientManifest) { // Upgrade legacy manifest (also see normalizeClientManifest in vue-bundle-renderer) // https://github.com/nuxt-contrib/vue-bundle-renderer/issues/12 - entryFiles = clientManifest.initial.map(file => ({ file })) + entryFiles = clientManifest.initial.map(file => + file.endsWith('css') ? { css: file } : { file } + ) } return Promise.resolve({ @@ -97,6 +99,7 @@ const getSPARenderer = lazyCachedFunction(async () => { .join(''), renderScripts: () => entryFiles + .filter(({ file }) => file != null) .map(({ file }) => { const isMJS = !file.endsWith('.js') return `` From b9feb61089a24ccda2df8b3d1fe4ccc7096b4803 Mon Sep 17 00:00:00 2001 From: thomasRalee Date: Mon, 25 Jul 2022 18:30:38 +0800 Subject: [PATCH 2/4] chore: add head tages fixture to check for css stylesheet link tag --- test/basic.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/basic.test.ts b/test/basic.test.ts index b4fcb492bf6..e8095bab94a 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -145,6 +145,11 @@ describe('head tags', () => { // should render components expect(index).toContain('Basic fixture - Fixture') }) + + it('should render stylesheet link tag', async () => { + const html = await $fetch('/head') + expect(html).toMatch(/ { From 1240746993f5448ba5717e7a532e021c8409dddd Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 25 Jul 2022 13:49:38 +0200 Subject: [PATCH 3/4] update test and add comment --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 1 + test/basic.test.ts | 9 +++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index bfd39df91ab..2a403872a71 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -84,6 +84,7 @@ const getSPARenderer = lazyCachedFunction(async () => { // Upgrade legacy manifest (also see normalizeClientManifest in vue-bundle-renderer) // https://github.com/nuxt-contrib/vue-bundle-renderer/issues/12 entryFiles = clientManifest.initial.map(file => + // Webpack manifest fix with SPA renderer file.endsWith('css') ? { css: file } : { file } ) } diff --git a/test/basic.test.ts b/test/basic.test.ts index 88ced1f4c02..5462ded90ab 100644 --- a/test/basic.test.ts +++ b/test/basic.test.ts @@ -146,10 +146,11 @@ describe('head tags', () => { expect(index).toContain('Basic fixture - Fixture') }) - it('should render stylesheet link tag', async () => { - const html = await $fetch('/head') - expect(html).toMatch(/ { + // const html = await $fetch('/head', { headers: { 'x-nuxt-no-ssr': '1' } }) + // expect(html).toMatch(/ { From d70974ef9f616a142d22b55dcbe40d9e9cfd82fd Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 25 Jul 2022 13:58:52 +0200 Subject: [PATCH 4/4] simplify filter --- packages/nuxt/src/core/runtime/nitro/renderer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/nuxt/src/core/runtime/nitro/renderer.ts b/packages/nuxt/src/core/runtime/nitro/renderer.ts index 2a403872a71..fe4ba0859dc 100644 --- a/packages/nuxt/src/core/runtime/nitro/renderer.ts +++ b/packages/nuxt/src/core/runtime/nitro/renderer.ts @@ -100,7 +100,7 @@ const getSPARenderer = lazyCachedFunction(async () => { .join(''), renderScripts: () => entryFiles - .filter(({ file }) => file != null) + .filter(({ file }) => file) .map(({ file }) => { const isMJS = !file.endsWith('.js') return ``