提交 90f903f5 编写于 作者: 雪洛's avatar 雪洛

fix(uni-app-x web): 修复script setup编译结果不正确的Bug

上级 f37eb25a
......@@ -6,6 +6,7 @@ import { createHandleHotUpdate } from './handleHotUpdate'
import { createTransformIndexHtml } from './transformIndexHtml'
import { createConfigureServer } from './configureServer'
import { createUni } from './uni'
import { rewriteCompileScriptOnce } from './polyfill'
import { createConfig } from './config'
import { isString } from '@vue/shared'
......@@ -17,6 +18,9 @@ export function uniH5Plugin(): UniVitePlugin {
resolvedConfig: null,
}
rewriteReadFileSync()
if (process.env.UNI_APP_X === 'true') {
rewriteCompileScriptOnce()
}
return {
name: 'uni:h5',
uni: createUni(),
......
import { once } from '@dcloudio/uni-shared'
import { resolveBuiltIn } from '@dcloudio/uni-cli-shared'
import {
SFCDescriptor,
SFCScriptBlock,
SFCScriptCompileOptions,
} from '@vue/compiler-sfc'
export const rewriteCompileScriptOnce = once(rewriteCompileScript)
function rewriteCompileScript() {
const compiler = require(resolveBuiltIn('@vue/compiler-sfc'))
const { compileScript } = compiler
// script-setup + v-bind
compiler.compileScript = (
sfc: SFCDescriptor,
options: SFCScriptCompileOptions
): SFCScriptBlock => {
const originalScriptSetupLang = sfc.scriptSetup?.lang
if (originalScriptSetupLang === 'uts') {
sfc.scriptSetup!.lang = 'ts'
}
const result = compileScript(sfc, options)
if (originalScriptSetupLang === 'uts') {
sfc.scriptSetup!.lang = 'uts'
}
return result
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册