代码之家  ›  专栏  ›  技术社区  ›  justicecurcian

vuejs如何将单个文件组件编译成js对象

  •  0
  • justicecurcian  · 技术社区  · 6 年前

    <template>
      <div>
        Hello!
      </div>
    </template>
    
    <script>
      export default {
        name: 'app'
      }
    </script>
    

    我想把它编译成

    {
      template: '<div>Hello!</div>'
    }
    

    我该怎么做?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Styx    6 年前

    你可以用 vue-template-compiler package :

    安装:

    npm i vue-template-compiler
    

    使用它( test.vue 是您示例中的组件):

    const fs = require('fs');
    const compiler = require('vue-template-compiler');
    
    const content = fs.readFileSync('./test.vue', 'utf-8');
    
    const res = compiler.parseComponent(content);
    const template = res.template.content.trim();
    
    const result = { template };
    console.log(result);
    

    结果:

    { template: '<div>\n  Hello!\n</div>' }
    

    别忘了在代码中添加错误检查。