diff --git a/packages/plugin-vue/src/main.ts b/packages/plugin-vue/src/main.ts index 64ad9346d8c783..a4be3fdad9842c 100644 --- a/packages/plugin-vue/src/main.ts +++ b/packages/plugin-vue/src/main.ts @@ -321,11 +321,15 @@ async function genScriptCode( ? (['typescript'] as const) : (['typescript', 'decorators-legacy'] as const) : [] - scriptCode = options.compiler.rewriteDefault( - script.content, - '_sfc_main', - [...defaultPlugins, ...userPlugins] - ) + const as = '_sfc_main' + if (options.compiler.rewriteDefaultAST && script.scriptAst) { + options.compiler.rewriteDefaultAST(script.scriptAst, script.s, as) + } else { + scriptCode = options.compiler.rewriteDefault(script.content, as, [ + ...defaultPlugins, + ...userPlugins + ]) + } map = script.map } else { if (script.src) {