zoukankan      html  css  js  c++  java
  • javascript 获取function的所在文件,并读取代码文件

    1、通过func.toString()可以获取function代码
    2、要获取所在文件,需要错误调用func,根据堆栈可以获取

    堆栈信息类似:

    at module.exports.data (d:Projectaiui flowflowapp-jsmodulesmusicNewsrcscenessubplayothers.js:30:39)
     at d:Projectaiui flowflowapp-jsmodulesmusicNewsrcscenessubplaypanel.js:28:39
    

    因此可以通过下面的方式来获取文件,并读取代码文件

      try {
            func(null);
        } catch (error) {
            console.log(error.stack)
            let lines = error.stack.split('
    ')
            let first = lines[1].trim().replace("at ","")
            //    at module.exports.data (d:Projectaiui flowflowapp-jsmodulesmusicNewsrcscenessubplayothers.js:30:39)
            //  at d:Projectaiui flowflowapp-jsmodulesmusicNewsrcscenessubplaypanel.js:28:39
            let file = first.substring(first.indexOf("(") + 1, first.indexOf(".js") + 3);
            file = file.replace(/\/g, "/")
            let fileCode = fs.readFileSync(file).toString();
            
    }
    
           
    
    
    1. 为什么要获取代码文件?

    获取了就能从代码读取一些有用的信息啊,比如闭包context的变量定义,比如注释信息

  • 相关阅读:
    PHP实现邮件的自动发送
    为PostgreSQL的表自动添加分区
    django
    django的logging模块
    job
    python 类的方法带的self理解
    java
    choice_set的理解
    django
    proxy_next_upstream带来的坑和加载sticky模块
  • 原文地址:https://www.cnblogs.com/xiaoqi/p/11313160.html
Copyright © 2011-2022 走看看