From 0d2fa20c6dbbcfc0c1878c82e4193a8a32df4e9f Mon Sep 17 00:00:00 2001 From: Romain Hamel Date: Mon, 24 Mar 2025 18:32:46 +0100 Subject: [PATCH 1/2] fix(nuxt): disable ssr on component renderer --- packages/nuxt/package.json | 1 + packages/nuxt/src/module.ts | 3 +- pnpm-lock.yaml | 213 +----------------------------------- 3 files changed, 7 insertions(+), 210 deletions(-) diff --git a/packages/nuxt/package.json b/packages/nuxt/package.json index 60b09d4f..f206ddc6 100644 --- a/packages/nuxt/package.json +++ b/packages/nuxt/package.json @@ -31,6 +31,7 @@ "@nuxt/devtools-kit": "^2.3.1", "@nuxt/kit": "catalog:", "consola": "^3.4.2", + "defu": "^6.1.4", "ufo": "^1.5.4" }, "devDependencies": { diff --git a/packages/nuxt/src/module.ts b/packages/nuxt/src/module.ts index 5a0bfcf0..11b61cad 100644 --- a/packages/nuxt/src/module.ts +++ b/packages/nuxt/src/module.ts @@ -3,7 +3,7 @@ import { defineNuxtModule, createResolver, addTemplate, addVitePlugin, logger, a import { colors } from 'consola/utils' import { joinURL } from 'ufo' import { version } from '../package.json' - +import { defu } from 'defu' import { compodium } from '@compodium/core' import type { PluginOptions } from '@compodium/core' @@ -40,6 +40,7 @@ export default defineNuxtModule({ nuxt.hooks.hookOnce('pages:extend', (pages) => { if (pages.length) pages.push({ path: '/__compodium__/renderer', file: resolve('./runtime/renderer-placeholder.vue') }) }) + nuxt.options.routeRules = defu(nuxt.options.routeRules, { '/__compodium__/**': { ssr: false } }) nuxt.hooks.hookOnce('components:dirs', async (dirs) => { addVitePlugin(compodium({ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 238aab4b..bbbf1527 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -262,6 +262,9 @@ importers: consola: specifier: ^3.4.2 version: 3.4.2 + defu: + specifier: ^6.1.4 + version: 6.1.4 ufo: specifier: ^1.5.4 version: 1.5.4 @@ -274,7 +277,7 @@ importers: version: 3.16.1 nuxt: specifier: 'catalog: ' - version: 3.16.1(@parcel/watcher@2.5.1)(@types/node@22.13.12)(better-sqlite3@11.9.1)(db0@0.3.1(better-sqlite3@11.9.1))(eslint@9.23.0(jiti@2.4.2))(ioredis@5.6.0)(lightningcss@1.29.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@3.29.5)(terser@5.39.0)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue-tsc@2.2.0(typescript@5.6.3))(yaml@2.7.0) + version: 3.16.1(@parcel/watcher@2.5.1)(@types/node@22.13.12)(better-sqlite3@11.9.1)(db0@0.3.1(better-sqlite3@11.9.1))(eslint@9.23.0(jiti@2.4.2))(ioredis@5.6.0)(lightningcss@1.29.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.36.0)(terser@5.39.0)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue-tsc@2.2.0(typescript@5.6.3))(yaml@2.7.0) pathe: specifier: ^2.0.3 version: 2.0.3 @@ -8043,67 +8046,6 @@ snapshots: - uploadthing - vite - '@nuxt/vite-builder@3.16.1(@types/node@22.13.12)(eslint@9.23.0(jiti@2.4.2))(lightningcss@1.29.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@3.29.5)(terser@5.39.0)(typescript@5.6.3)(vue-tsc@2.2.0(typescript@5.6.3))(vue@3.5.13(typescript@5.6.3))(yaml@2.7.0)': - dependencies: - '@nuxt/kit': 3.16.1(magicast@0.3.5) - '@rollup/plugin-replace': 6.0.2(rollup@3.29.5) - '@vitejs/plugin-vue': 5.2.3(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3)) - '@vitejs/plugin-vue-jsx': 4.1.2(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3)) - autoprefixer: 10.4.21(postcss@8.5.3) - consola: 3.4.2 - cssnano: 7.0.6(postcss@8.5.3) - defu: 6.1.4 - esbuild: 0.25.1 - escape-string-regexp: 5.0.0 - exsolve: 1.0.4 - externality: 1.0.2 - get-port-please: 3.1.2 - h3: 1.15.1 - jiti: 2.4.2 - knitwork: 1.2.0 - magic-string: 0.30.17 - mlly: 1.7.4 - mocked-exports: 0.1.1 - ohash: 2.0.11 - pathe: 2.0.3 - perfect-debounce: 1.0.0 - pkg-types: 2.1.0 - postcss: 8.5.3 - rollup-plugin-visualizer: 5.14.0(rollup@3.29.5) - std-env: 3.8.1 - ufo: 1.5.4 - unenv: 2.0.0-rc.15 - unplugin: 2.2.2 - vite: 6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) - vite-node: 3.0.9(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0) - vite-plugin-checker: 0.9.1(eslint@9.23.0(jiti@2.4.2))(optionator@0.9.4)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue-tsc@2.2.0(typescript@5.6.3)) - vue: 3.5.13(typescript@5.6.3) - vue-bundle-renderer: 2.1.1 - transitivePeerDependencies: - - '@biomejs/biome' - - '@types/node' - - eslint - - less - - lightningcss - - magicast - - meow - - optionator - - rolldown - - rollup - - sass - - sass-embedded - - stylelint - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - vls - - vti - - vue-tsc - - yaml - '@nuxt/vite-builder@3.16.1(@types/node@22.13.12)(eslint@9.23.0(jiti@2.4.2))(lightningcss@1.29.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.36.0)(terser@5.39.0)(typescript@5.6.3)(vue-tsc@2.2.0(typescript@5.6.3))(vue@3.5.13(typescript@5.6.3))(yaml@2.7.0)': dependencies: '@nuxt/kit': 3.16.1(magicast@0.3.5) @@ -8547,13 +8489,6 @@ snapshots: optionalDependencies: rollup: 3.29.5 - '@rollup/plugin-replace@6.0.2(rollup@3.29.5)': - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@3.29.5) - magic-string: 0.30.17 - optionalDependencies: - rollup: 3.29.5 - '@rollup/plugin-replace@6.0.2(rollup@4.36.0)': dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.36.0) @@ -10889,16 +10824,6 @@ snapshots: parent-module: 1.0.1 resolve-from: 4.0.0 - impound@0.2.2(rollup@3.29.5): - dependencies: - '@rollup/pluginutils': 5.1.4(rollup@3.29.5) - mlly: 1.7.4 - mocked-exports: 0.1.1 - pathe: 2.0.3 - unplugin: 2.2.2 - transitivePeerDependencies: - - rollup - impound@0.2.2(rollup@4.36.0): dependencies: '@rollup/pluginutils': 5.1.4(rollup@4.36.0) @@ -12037,127 +11962,6 @@ snapshots: - magicast - vue - nuxt@3.16.1(@parcel/watcher@2.5.1)(@types/node@22.13.12)(better-sqlite3@11.9.1)(db0@0.3.1(better-sqlite3@11.9.1))(eslint@9.23.0(jiti@2.4.2))(ioredis@5.6.0)(lightningcss@1.29.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@3.29.5)(terser@5.39.0)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue-tsc@2.2.0(typescript@5.6.3))(yaml@2.7.0): - dependencies: - '@nuxt/cli': 3.23.1(magicast@0.3.5) - '@nuxt/devalue': 2.0.2 - '@nuxt/devtools': 2.3.0(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue@3.5.13(typescript@5.6.3)) - '@nuxt/kit': 3.16.1(magicast@0.3.5) - '@nuxt/schema': 3.16.1 - '@nuxt/telemetry': 2.6.6(magicast@0.3.5) - '@nuxt/vite-builder': 3.16.1(@types/node@22.13.12)(eslint@9.23.0(jiti@2.4.2))(lightningcss@1.29.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@3.29.5)(terser@5.39.0)(typescript@5.6.3)(vue-tsc@2.2.0(typescript@5.6.3))(vue@3.5.13(typescript@5.6.3))(yaml@2.7.0) - '@oxc-parser/wasm': 0.60.0 - '@unhead/vue': 2.0.0-rc.13(vue@3.5.13(typescript@5.6.3)) - '@vue/shared': 3.5.13 - c12: 3.0.2(magicast@0.3.5) - chokidar: 4.0.3 - compatx: 0.1.8 - consola: 3.4.2 - cookie-es: 2.0.0 - defu: 6.1.4 - destr: 2.0.3 - devalue: 5.1.1 - errx: 0.1.0 - esbuild: 0.25.1 - escape-string-regexp: 5.0.0 - estree-walker: 3.0.3 - exsolve: 1.0.4 - globby: 14.1.0 - h3: 1.15.1 - hookable: 5.5.3 - ignore: 7.0.3 - impound: 0.2.2(rollup@3.29.5) - jiti: 2.4.2 - klona: 2.0.6 - knitwork: 1.2.0 - magic-string: 0.30.17 - mlly: 1.7.4 - mocked-exports: 0.1.1 - nanotar: 0.2.0 - nitropack: 2.11.7(better-sqlite3@11.9.1)(typescript@5.6.3) - nypm: 0.6.0 - ofetch: 1.4.1 - ohash: 2.0.11 - on-change: 5.0.1 - oxc-parser: 0.56.5 - pathe: 2.0.3 - perfect-debounce: 1.0.0 - pkg-types: 2.1.0 - radix3: 1.1.2 - scule: 1.3.0 - semver: 7.7.1 - std-env: 3.8.1 - strip-literal: 3.0.0 - tinyglobby: 0.2.12 - ufo: 1.5.4 - ultrahtml: 1.5.3 - uncrypto: 0.1.3 - unctx: 2.4.1 - unimport: 4.1.2 - unplugin: 2.2.2 - unplugin-vue-router: 0.12.0(vue-router@4.5.0(vue@3.5.13(typescript@5.6.3)))(vue@3.5.13(typescript@5.6.3)) - unstorage: 1.15.0(db0@0.3.1(better-sqlite3@11.9.1))(ioredis@5.6.0) - untyped: 2.0.0 - vue: 3.5.13(typescript@5.6.3) - vue-bundle-renderer: 2.1.1 - vue-devtools-stub: 0.1.0 - vue-router: 4.5.0(vue@3.5.13(typescript@5.6.3)) - optionalDependencies: - '@parcel/watcher': 2.5.1 - '@types/node': 22.13.12 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@biomejs/biome' - - '@capacitor/preferences' - - '@deno/kv' - - '@electric-sql/pglite' - - '@libsql/client' - - '@netlify/blobs' - - '@planetscale/database' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/kv' - - aws4fetch - - better-sqlite3 - - bufferutil - - db0 - - drizzle-orm - - encoding - - eslint - - idb-keyval - - ioredis - - less - - lightningcss - - magicast - - meow - - mysql2 - - optionator - - rolldown - - rollup - - sass - - sass-embedded - - sqlite3 - - stylelint - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - uploadthing - - utf-8-validate - - vite - - vls - - vti - - vue-tsc - - xml2js - - yaml - nuxt@3.16.1(@parcel/watcher@2.5.1)(@types/node@22.13.12)(better-sqlite3@11.9.1)(db0@0.3.1(better-sqlite3@11.9.1))(eslint@9.23.0(jiti@2.4.2))(ioredis@5.6.0)(lightningcss@1.29.2)(magicast@0.3.5)(optionator@0.9.4)(rollup@4.36.0)(terser@5.39.0)(typescript@5.6.3)(vite@6.2.2(@types/node@22.13.12)(jiti@2.4.2)(lightningcss@1.29.2)(terser@5.39.0)(yaml@2.7.0))(vue-tsc@2.2.0(typescript@5.6.3))(yaml@2.7.0): dependencies: '@nuxt/cli': 3.23.1(magicast@0.3.5) @@ -12990,15 +12794,6 @@ snapshots: optionalDependencies: '@babel/code-frame': 7.26.2 - rollup-plugin-visualizer@5.14.0(rollup@3.29.5): - dependencies: - open: 8.4.2 - picomatch: 4.0.2 - source-map: 0.7.4 - yargs: 17.7.2 - optionalDependencies: - rollup: 3.29.5 - rollup-plugin-visualizer@5.14.0(rollup@4.36.0): dependencies: open: 8.4.2 From c9a20a360ff7a184aab2b0e836d441a300af9477 Mon Sep 17 00:00:00 2001 From: Romain Hamel Date: Mon, 24 Mar 2025 18:48:41 +0100 Subject: [PATCH 2/2] test: fix --- packages/nuxt/src/module.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/module.ts b/packages/nuxt/src/module.ts index 11b61cad..906c2230 100644 --- a/packages/nuxt/src/module.ts +++ b/packages/nuxt/src/module.ts @@ -40,7 +40,10 @@ export default defineNuxtModule({ nuxt.hooks.hookOnce('pages:extend', (pages) => { if (pages.length) pages.push({ path: '/__compodium__/renderer', file: resolve('./runtime/renderer-placeholder.vue') }) }) - nuxt.options.routeRules = defu(nuxt.options.routeRules, { '/__compodium__/**': { ssr: false } }) + + if (nuxt.options.experimental?.typedPages) { + nuxt.options.routeRules = defu(nuxt.options.routeRules, { '/__compodium__/**': { ssr: false } }) + } nuxt.hooks.hookOnce('components:dirs', async (dirs) => { addVitePlugin(compodium({