vuejs / repl

Vue SFC REPL as a Vue 3 component
https://repl-vuejs.vercel.app
MIT License
930 stars 172 forks source link

compileScript 如何支持第三方插件 比如 antdv #97

Closed bhabgs closed 1 year ago

bhabgs commented 1 year ago
export default (descriptor: defaultCompiler.SFCDescriptor, id: string) => {
  if (descriptor.script || descriptor.scriptSetup) {
    // 1.编译script
    const compiledScript = defaultCompiler.compileScript(descriptor, {
      inlineTemplate: true, // 是否编译模板并直接在setup()里面内联生成的渲染函数
      id, // 用于样式的作用域
      templateOptions: {
        // 编译模板的选项
        compilerOptions: {
          // 模板编译选项
        },
      },
    });
    return (
      extendVueInstance().constString +
      "\n" +
      deleteImport(compiledScript.content.replace("export default ", "return "))
    );
  }
};

根据官方demo 在我的系统内部进行了一些改造,但是我同时希望他能够支持 vue的其他ui组件,不知道该如何实现

Blackman99 commented 1 year ago

Already merged #42

bhabgs commented 1 year ago

Already merged #42

我对原有写法进行了小范围的改动,具体使用的时候 是这个样子的。运行起来时 看起来是没有什么问题的,只是不支持组件。

setup(props, ctx) {
  const vnode = ref("");
  const fun = new Function("vue", codev);
  vnode.value = fun(vue).setup(props);

return () => <vnode.value />
}

image

sxzz commented 1 year ago

Could you please provide more background/information about your request?

bhabgs commented 1 year ago

问题已经解决,谢谢