From 2fb3153b03ca08134d036c918b85f6aadb86a88c Mon Sep 17 00:00:00 2001 From: alexzhang1030 <1642114555@qq.com> Date: Wed, 13 Dec 2023 16:17:39 +0800 Subject: [PATCH 1/2] fix(core): fix analyzer duplicate injection code --- packages/core/src/compiler/trace-rerender.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/packages/core/src/compiler/trace-rerender.ts b/packages/core/src/compiler/trace-rerender.ts index 4cb4e6c0..fb353bca 100644 --- a/packages/core/src/compiler/trace-rerender.ts +++ b/packages/core/src/compiler/trace-rerender.ts @@ -22,6 +22,15 @@ export function analyzeByTraceRerender(code: MS, locations: InsertLocation[]) { });\n`, } + // to avoid duplicate injection + const currentCode = code.toString() + const shouldInject = Object.entries(apiNames).map(([, alias]) => { + return !currentCode.includes(alias) + }).every(Boolean) + + if (!shouldInject) + return code + locations.forEach(({ start, end }, idx) => { if (idx === 0) { code = ensureImport(code, { @@ -30,6 +39,7 @@ export function analyzeByTraceRerender(code: MS, locations: InsertLocation[]) { })), }, start) } + entries(injectedCodes).forEach(([, appendCode]) => { code.prependLeft(end, appendCode) }) From 0436b3e2a33402f752cccc32dbc6d96b633e7ffa Mon Sep 17 00:00:00 2001 From: alexzhang1030 <1642114555@qq.com> Date: Wed, 13 Dec 2023 16:25:31 +0800 Subject: [PATCH 2/2] chore: playground add jsx --- packages/playground/package.json | 1 + packages/playground/src/App.vue | 2 + packages/playground/src/components/TSX.vue | 9 + packages/playground/vite.config.ts | 2 + pnpm-lock.yaml | 279 ++++++++++++++++++++- 5 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 packages/playground/src/components/TSX.vue diff --git a/packages/playground/package.json b/packages/playground/package.json index dc6bc1c3..96b85507 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -15,6 +15,7 @@ }, "devDependencies": { "@vitejs/plugin-vue": "^4.4.0", + "@vitejs/plugin-vue-jsx": "^3.1.0", "serve": "^14.2.1", "typescript": "^5.2.2", "vite": "^4.4.11", diff --git a/packages/playground/src/App.vue b/packages/playground/src/App.vue index e3b5ddc9..78e77d0b 100644 --- a/packages/playground/src/App.vue +++ b/packages/playground/src/App.vue @@ -2,6 +2,7 @@ import { computed, reactive, ref } from 'vue' import { useRouter } from 'vue-router' import ReadCounter from './components/ReadCounter.vue' +import TSX from './components/TSX.vue' const count = ref(0) const doubleCount = computed(() => { @@ -43,6 +44,7 @@ const router = useRouter() {{ count }} {{ doubleCount }} + TSX: