美文网首页
ast 介绍之统计方法使用情况

ast 介绍之统计方法使用情况

作者: 努力学习的小丸子 | 来源:发表于2021-07-06 23:52 被阅读0次
遗留问题:以下情况该如何统计某方法的使用情况??
let target= {
    api: {
      logger: {
        log: function () {},
        debug: function () {},
      },
    },
  };
  let a = target.api.logger.log;
  a();
  a();

使用文本替换,将注释内容都删除,然后通过正则匹配

  • 使用decomment这个库,它可以去除html或者纯文本中的///**/注释。
  • 将文件内容转成js,然后将js转成ast

当目标文件是js,jsx,tstsx,使用@babel/parser@babel/generator来进行转换

async function deleteComments(file) {
  let codes = await fs.promises.readFile(file, "utf8");
  let ast = parse(codes, { sourceType: "unambiguous" });
  console.log("ast,", ast);
  let { code } = generate(ast, { comments: false }, codes);
  return code;
}

当目标文件是vue是,需要将vue转换成js,然后使用@babel/parser@babel/generator来进行转换

async function transfromVueToJs(file) {
  let codes = await fs.promises.readFile(file, "utf8");
  const parsed = compiler.parseComponent(codes);
  return parsed.script && parsed.script.content;
}

async function transfromVueToAst(file) {
  let content = await transfromVueToJs(file);
  let ast = parse(content, {
    sourceType: "unambiguous",
    plugins: ["transform-vue-jsx"],
  });
  // console.log('ast,', JSON.stringify(ast));

  fs.writeFile(
    file.replace("vue", "json"),
    JSON.stringify(ast, null, 4),
    (err) => {
      if (err) throw err;
      console.log(`The file ${file} has been created!`);
    }
  );

  let { code } = generate(ast, { comments: false }, content);
  return code;
}

相关文章

  • ast 介绍之统计方法使用情况

    遗留问题:以下情况该如何统计某方法的使用情况?? 使用文本替换,将注释内容都删除,然后通过正则匹配 使用decom...

  • iOS Runtime实践

    本文主要介绍Runtime四种使用情况: 1、交换方法2、动态添加方法3、动态添加属性4、日志统计 Objecti...

  • AST 介绍

    AST 是什么? AST (Abstract Syntax Tree(抽象语法树)) 是源代码语法结构的一种抽象表...

  • 统计方法介绍

    背景 统计方法一般难以理解,而且不同的方法有相关的使用原则。网上介绍的文章千差万别,大部分只是展示如何用R进行相关...

  • browserslist使用

    > 5%:全球使用情况统计选择的浏览器版本。 >=,<也<=工作。 > 5% in US:使用美国使用情况统计。它...

  • AST节点介绍

    AST在线预览网站: https://astexplorer.netBable AST官网:https://git...

  • llvm cookbook 2.9/2.10/2.11 IR代

    对AST里的每个节点,也即每个AST类都定义Codegen方法。 这个方法会返回一个LLVM Value对象,表示...

  • Django聚合统计踩坑记

    前端提了个需求,需要统计各版本的使用情况。在网上搜寻一番,发现aggregate和annotate方法可以很简单的...

  • 250-今日总结

    英语 英语流利说 &潘多拉口语 专业课 心理统计学-方差分析概述(王老师课程视频) 开始测试anki使用情况,把之...

  • 统计学习方法|中文epub mobi pdf

    内容简介 《统计学习方法》是计算机及其应用领域的一门重要的学科。《统计学习方法》全面系统地介绍了统计学习的主要方法...

网友评论

      本文标题:ast 介绍之统计方法使用情况

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