如何使用JS代码了解所有JS文件依赖项?

时间:2017-08-01 11:42:54

标签: javascript

我的主要用例是了解所有JS文件依赖项!

如果我有定义函数a.js的文件foo和调用函数b.js的其他文件foo,我想知道b.js -> a.js其中->表示b.js取决于a.js

有可能吗?有人会想到一个棘手的解决方案吗?

我试图覆盖foo函数并获取堆栈调用,它工作正常,我知道b.js调用foo,但我仍然不知道foo是在a.js ...

中定义

所以也许有人可以为此考虑解决方案:

我有一个名为“a.js”的文件,用于定义全局函数foo

而且,我有一个名为“b.js”的文件,其中包含获取window对象上所有非本机函数的代码,因此我在这里得到了全局函数foo

现在,对于每个非本机全局函数,我想知道定义它们的JS文件名,所以这里foo我想得到“a.js”

有可能吗?有人会想到一个棘手的解决方案吗?

注意:我需要在浏览器中运行它,不使用 Node.js.并且,并非所有文件都是我的,所以我无法编辑它们。

1 个答案:

答案 0 :(得分:0)

首先运行此代码,然后检查调试器中的调用堆栈。

Object.defineProperty(window, 'foo', {
  set: function() {
    debugger;
  }
});