diff --git a/docs/content/1.getting-started/4.visual-editing.md b/docs/content/1.getting-started/4.visual-editing.md index 1d6ac489..3e5e8c10 100644 --- a/docs/content/1.getting-started/4.visual-editing.md +++ b/docs/content/1.getting-started/4.visual-editing.md @@ -10,14 +10,6 @@ Installing `@sanity/client` is required for visual editing. The `minimal` client must not be enabled. :: -::alert{type=warning} -If you are using `pnpm` with `shamefully-hoist=false` (which is enabled by default for pnpm), you will also need to install the following dependencies: - -```bash -pnpm i -D async-cache-dedupe debug parse-headers react react-dom react-is -``` -:: - ## Configuration You can configure visual editing via the `sanity.visualEditing` key in your Nuxt config. The following options are available: diff --git a/playground/package.json b/playground/package.json index faaf8d7e..a9e64856 100644 --- a/playground/package.json +++ b/playground/package.json @@ -8,13 +8,7 @@ "dependencies": { "@nuxtjs/sanity": "latest", "@sanity/client": "latest", - "async-cache-dedupe": "latest", - "debug": "latest", "nuxt": "3.10.3", - "parse-headers": "latest", - "react": "latest", - "react-dom": "latest", - "react-is": "latest", "vue": "latest", "vue-router": "latest" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 04c9da4a..5b2b8775 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -133,27 +133,9 @@ importers: '@sanity/client': specifier: latest version: 6.15.3 - async-cache-dedupe: - specifier: latest - version: 2.1.0 - debug: - specifier: latest - version: 4.3.4 nuxt: specifier: 3.10.3 version: 3.10.3(eslint@8.57.0)(rollup@3.29.4)(typescript@5.4.2)(vite@5.1.5)(vue-tsc@2.0.6) - parse-headers: - specifier: latest - version: 2.0.5 - react: - specifier: latest - version: 18.2.0 - react-dom: - specifier: latest - version: 18.2.0(react@18.2.0) - react-is: - specifier: latest - version: 18.2.0 vue: specifier: latest version: 3.4.21(typescript@5.4.2) diff --git a/src/module.ts b/src/module.ts index 26fb5aef..29e5c6e1 100644 --- a/src/module.ts +++ b/src/module.ts @@ -290,8 +290,22 @@ export default defineNuxtModule({ if (options.visualEditing) { // Optimise dependencies of visual editing + nuxt.options.build.transpile.push('async-cache-dedupe') + nuxt.options.vite.resolve = defu(nuxt.options.vite.resolve, { + dedupe: ['@sanity/client'], + }) nuxt.options.vite.optimizeDeps = defu(nuxt.options.vite.optimizeDeps, { - include: ['async-cache-dedupe', 'react/jsx-runtime', 'parse-headers', 'debug', 'react-dom/client', 'react-is', 'react', 'react-dom'], + include: [ + '@nuxtjs/sanity > @sanity/core-loader > async-cache-dedupe', + '@nuxtjs/sanity > @sanity/visual-editing > @sanity/visual-editing > react-is', + '@nuxtjs/sanity > @sanity/visual-editing > react', + '@nuxtjs/sanity > @sanity/visual-editing > react/jsx-runtime', + '@nuxtjs/sanity > @sanity/visual-editing > react-dom', + '@nuxtjs/sanity > @sanity/visual-editing > react-dom/client', + '@sanity/client > get-it > debug', + '@sanity/client > get-it > parse-headers', + '@sanity/client', + ], }) // Add auto-imports for visual editing if (isNuxt3()) {