ES6 和 "Who imported me"?

ES6 and "Who imported me"?

我正在使用 javascript 系统构建(我认为?)在 ES6 兼容 javascript 上 compiled/transpiled 向下兼容浏览器 javascript(Wordpress Calypo, if it matters)

现代 javascript 是否有办法反映到调用上下文中?换句话说,如果我有一个 javascript 模块 foo

#File: foo/index.js
//...lots of code...
export default () => {
    //...more code...
}

有没有办法在运行时判断哪个 javascript 模块 and/or 文件导入了我的 "foo" 模块?如果这不可能,是否有一种通用的方法可以通过静态分析来做到这一点。如果我的问题没有任何意义,因为我做了一个错误的假设(最有可能的情况),我很乐意纠正这个假设。

tl;dr:没有也没有。

ES6 的特定块 Javascript 无法确定其加载方式。你能做的最好的事情就是让加载 Javascript 告诉加载 Javascript 加载程序是如何进行的。

静态分析实际上无法 100% 地告诉您特定代码位是否会 运行,因此无法 100% 地告诉您是否将加载特定文件。 (这与 halting problem 有关。)也就是说,很少需要 100% 检测,因为文件请求很少被隐藏到隐藏它们所需的程度。但是,我不知道是否有静态分析工具能够解开更复杂版本的常见 Javascript 加载技术,因为代码创建者通常已经知道他们加载相关代码的情况。