diff --git a/packages/plugin-vue/src/index.ts b/packages/plugin-vue/src/index.ts
index 477eda57..61e08ce9 100644
--- a/packages/plugin-vue/src/index.ts
+++ b/packages/plugin-vue/src/index.ts
@@ -265,8 +265,10 @@ export default function vuePlugin(rawOptions: Options = {}): Plugin<Api> {
     },
 
     configResolved(config) {
+      const { compiler, ...rest } = options.value
       options.value = {
-        ...options.value,
+        compiler: compiler ?? resolveCompiler(options.value.root),
+        ...rest,
         root: config.root,
         sourceMap: config.command === 'build' ? !!config.build.sourcemap : true,
         cssDevSourcemap: config.css?.devSourcemap ?? false,