From 381e0f834928dee4d21641f3f09f8879cc1521e2 Mon Sep 17 00:00:00 2001 From: Nozomu Ikuta <16436160+NozomuIkuta@users.noreply.github.com> Date: Wed, 5 Jul 2023 18:59:23 +0900 Subject: [PATCH] fix(schema): warn if user provides `vite.publicDir` (#21847) --- packages/schema/src/config/vite.ts | 7 ++++++- packages/schema/src/types/config.ts | 10 +++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/schema/src/config/vite.ts b/packages/schema/src/config/vite.ts index 5a6d07b44..deba6f99b 100644 --- a/packages/schema/src/config/vite.ts +++ b/packages/schema/src/config/vite.ts @@ -30,7 +30,12 @@ export default defineUntypedSchema({ extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue'] }, publicDir: { - $resolve: async (val, get) => val ?? resolve((await get('srcDir')), (await get('dir')).public) + $resolve: async (val, get) => { + if (val) { + console.warn('Directly configuring the `vite.publicDir` option is not supported. Instead, set `dir.public`. You can read more in `https://nuxt.com/docs/api/configuration/nuxt-config#public`.') + } + return val ?? resolve((await get('srcDir')), (await get('dir')).public) + } }, vue: { isProduction: { diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index 398291ebf..0b44452f9 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -96,7 +96,7 @@ export interface NuxtOptions extends Omit { $schema: SchemaDefinition } -export interface ViteConfig extends ViteUserConfig { +export interface ViteConfig extends Omit { /** The path to the entrypoint for the Vite build. */ entry?: string /** @@ -126,6 +126,14 @@ export interface ViteConfig extends ViteUserConfig { * Use environment variables or top level `server` options to configure Nuxt server. */ server?: Omit + /** + * Directly configuring the `vite.publicDir` option is not supported. Instead, set `dir.public`. + * + * You can read more in . + * + * @deprecated + */ + publicDir?: never }