From bf22d502d063595fa685b893f085daf8f3510483 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 29 Jul 2022 09:53:44 +0100 Subject: [PATCH 1/3] fix(schema): add typings for `vite.vue` options --- packages/schema/src/config/vite.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schema/src/config/vite.ts b/packages/schema/src/config/vite.ts index 232197f4ba5..20811feeeef 100644 --- a/packages/schema/src/config/vite.ts +++ b/packages/schema/src/config/vite.ts @@ -8,7 +8,7 @@ export default { * See https://vitejs.dev/config for more information. * Please note that not all vite options are supported in Nuxt. * - * @type {typeof import('vite').UserConfig} + * @type {typeof import('vite').UserConfig & { vue?: typeof import('@vitejs/plugin-vue').Options }} * @version 3 */ vite: { From e44613e88a1f86087ca52ea36588846674ad03b9 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 29 Jul 2022 09:56:06 +0100 Subject: [PATCH 2/3] fix: don't inline `@vitejs/plugin-vue` --- packages/schema/build.config.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/schema/build.config.ts b/packages/schema/build.config.ts index dfc24f59f17..8a044304740 100644 --- a/packages/schema/build.config.ts +++ b/packages/schema/build.config.ts @@ -29,6 +29,7 @@ export default defineBuildConfig({ 'webpack-bundle-analyzer', 'rollup-plugin-visualizer', 'vite', + '@vitejs/plugin-vue', 'mini-css-extract-plugin', 'terser-webpack-plugin', 'css-minimizer-webpack-plugin', From 9a9e63cada979ecad167cdfbcd269123bac37f03 Mon Sep 17 00:00:00 2001 From: Anthony Fu Date: Fri, 29 Jul 2022 18:06:39 +0800 Subject: [PATCH 3/3] refactor: extract interface --- packages/schema/src/config/vite.ts | 2 +- packages/schema/src/types/config.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/packages/schema/src/config/vite.ts b/packages/schema/src/config/vite.ts index 20811feeeef..2c16b49d373 100644 --- a/packages/schema/src/config/vite.ts +++ b/packages/schema/src/config/vite.ts @@ -8,7 +8,7 @@ export default { * See https://vitejs.dev/config for more information. * Please note that not all vite options are supported in Nuxt. * - * @type {typeof import('vite').UserConfig & { vue?: typeof import('@vitejs/plugin-vue').Options }} + * @type {typeof import('../src/types/config').ViteConfig} * @version 3 */ vite: { diff --git a/packages/schema/src/types/config.ts b/packages/schema/src/types/config.ts index dea1f696a5b..e21dfdaecc1 100644 --- a/packages/schema/src/types/config.ts +++ b/packages/schema/src/types/config.ts @@ -1,5 +1,7 @@ import { ConfigSchema } from '../../schema/config' import type { ResolvedConfig } from 'c12' +import { UserConfig } from 'vite' +import { Options as VuePluginOptions } from '@vitejs/plugin-vue' type DeepPartial = T extends Function ? T : T extends Record ? { [P in keyof T]?: DeepPartial } : T @@ -25,3 +27,11 @@ export interface PrivateRuntimeConfig extends RuntimeConfigNamespace { } export interface RuntimeConfig extends PrivateRuntimeConfig, RuntimeConfigNamespace { public: PublicRuntimeConfig } + +export interface ViteConfig extends UserConfig { + /** + * Options passed to @vitejs/plugin-vue + * @see https://github.com/vitejs/vite/tree/main/packages/plugin-vue + */ + vue?: VuePluginOptions +}