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的变量定义,比如注释信息

  • 相关阅读:
    POST GET原理函数
    位宽与带宽
    编程小工具
    C#的四个基本技巧
    关闭弹出模态窗口以后刷新父窗口
    十年技术,不要再迷茫
    冒泡排序
    单元测试工具及资源推荐
    xml xhtml html dhtml的区别
    删除List<string>中重复的值
  • 原文地址:https://www.cnblogs.com/xiaoqi/p/11313160.html
Copyright © 2011-2022 走看看