我的主要用例是了解所有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.并且,并非所有文件都是我的,所以我无法编辑它们。
答案 0 :(得分:0)
首先运行此代码,然后检查调试器中的调用堆栈。
Object.defineProperty(window, 'foo', {
set: function() {
debugger;
}
});