美文网首页
用vue-loader Custom Blocks显示源代码

用vue-loader Custom Blocks显示源代码

作者: 曾祥辉 | 来源:发表于2021-04-11 10:45 被阅读0次

    配置vite.config.ts

    //vite.config.ts
    import fs from 'fs';
    import { baseParse } from '@vue/compiler-core';
    export default {
        vueCustomBlockTransforms: {
        // 遇到demo标签就执行以下代码
            demo: (options) => {
                const { code, path } = options;
                const file = fs.readFileSync(path).toString();
          // 判断虚拟节点是否存在tag为deom的标签
                const parsed = baseParse(file).children.find((n) => n.tag === 'demo');
                const title = parsed.children[0].content;
          // 删除demo标签
                const main = file.split(parsed.loc.source).join('').trim();
          // 组件对象增加__sourceCode属性,值为源代码
                return `export default function (Component) {
            Component.__sourceCode = ${JSON.stringify(main)}
            Component.__sourceCodeTitle = ${JSON.stringify(title)}
          }`.trim();
            }
        }
    };
    

    使用

    //需要展示源代码的文件
    <demo>
      title
    </demo>
    <template>
     //code
    </template>
      
    <script lang="ts">
    export default {
     //code
    };
    </script>
    

    相关文章

      网友评论

          本文标题:用vue-loader Custom Blocks显示源代码

          本文链接:https://www.haomeiwen.com/subject/hhinkltx.html