Fix(Preview): Fixed code pollution bug

This commit is contained in:
2024-10-26 15:43:16 +08:00
parent f6c292ff25
commit 887e8089c1
5 changed files with 123 additions and 125 deletions

View File

@@ -32,7 +32,7 @@ const Preview = ({
Compiler.compile(files, importMap, entryPoint) Compiler.compile(files, importMap, entryPoint)
.then((result) => { .then((result) => {
setCompiledCode( setCompiledCode(
`${preExpansionCode}\n${result.outputFiles[0].text}\n${postExpansionCode}` `(()=>{${preExpansionCode}})();\n(()=>{${result.outputFiles[0].text}})();\n(()=>{${postExpansionCode}})();`
) )
setErrorMsg('') setErrorMsg('')
}) })

View File

@@ -3,7 +3,7 @@ import localforage from 'localforage'
import axios from 'axios' import axios from 'axios'
import esbuildWasmUrl from 'esbuild-wasm/esbuild.wasm?url' import esbuildWasmUrl from 'esbuild-wasm/esbuild.wasm?url'
import { IFiles, IImportMap } from '@/components/Playground/shared' import { IFiles, IImportMap } from '@/components/Playground/shared'
import { cssToJs, jsonToJs, addReactImport } from '@/components/Playground/files' import { addReactImport, cssToJs, jsonToJs } from '@/components/Playground/files'
class Compiler { class Compiler {
private init = false private init = false
@@ -74,8 +74,7 @@ class Compiler {
files: IFiles, files: IFiles,
importMap: IImportMap, importMap: IImportMap,
entryPoint: string entryPoint: string
): Plugin => { ): Plugin => ({
return {
name: 'file-resolver-plugin', name: 'file-resolver-plugin',
setup: (build: PluginBuild) => { setup: (build: PluginBuild) => {
build.onResolve({ filter: /.*/ }, (args: esbuild.OnResolveArgs) => { build.onResolve({ filter: /.*/ }, (args: esbuild.OnResolveArgs) => {
@@ -217,8 +216,7 @@ class Compiler {
return result return result
}) })
} }
} })
}
} }
export default new Compiler() export default new Compiler()

View File

@@ -27,7 +27,7 @@ const Execute = () => {
const output = result.outputFiles[0].text const output = result.outputFiles[0].text
setCompiledCode('') setCompiledCode('')
setTimeout(() => { setTimeout(() => {
setCompiledCode(`${output}\n${baseDist}`) setCompiledCode(`(() => {${output}})();\n(() => {${baseDist}})();`)
}, 100) }, 100)
}) })
.catch((reason) => { .catch((reason) => {

View File

@@ -145,7 +145,7 @@ const Create = () => {
.compile(files, importMap, template.entryPoint) .compile(files, importMap, template.entryPoint)
.then((result) => { .then((result) => {
const output = result.outputFiles[0].text const output = result.outputFiles[0].text
setCompiledCode(`${output}\n${baseDist}`) setCompiledCode(`(() => {${output}})();\n(() => {${baseDist}})();`)
}) })
.catch((reason) => { .catch((reason) => {
void message.error(`编译失败:${reason}`) void message.error(`编译失败:${reason}`)

View File

@@ -39,7 +39,7 @@ const View = () => {
const output = result.outputFiles[0].text const output = result.outputFiles[0].text
setCompiledCode('') setCompiledCode('')
setTimeout(() => { setTimeout(() => {
setCompiledCode(`${output}\n${baseDist}`) setCompiledCode(`(() => {${output}})();\n(() => {${baseDist}})();`)
}, 100) }, 100)
}) })
.catch((reason) => { .catch((reason) => {
@@ -54,7 +54,7 @@ const View = () => {
const dist = base64ToStr(toolVo.dist.data!) const dist = base64ToStr(toolVo.dist.data!)
setCompiledCode('') setCompiledCode('')
setTimeout(() => { setTimeout(() => {
setCompiledCode(`${dist}\n${baseDist}`) setCompiledCode(`(() => {${dist}})();\n(() => {${baseDist}})();`)
}, 100) }, 100)
} catch (e) { } catch (e) {
void message.error('载入工具失败') void message.error('载入工具失败')