有什么方法可以解析或建模 JavaScript 文件的内容并确定它需要哪些未定义的引用,以及它导出哪些引用?
我正在寻找一种方法来自动确定 Web 应用程序的巨大 JavaScript 文件集合的正确加载顺序。每个文件本质上都是一个模块,但许多文件具有奇怪的名称和额外的实用程序类型代码片段;代码及其组织非常迟钝,如果不能自动化,我们将手动执行数周。
有什么方法可以解析或建模 JavaScript 文件的内容并确定它需要哪些未定义的引用,以及它导出哪些引用?
我正在寻找一种方法来自动确定 Web 应用程序的巨大 JavaScript 文件集合的正确加载顺序。每个文件本质上都是一个模块,但许多文件具有奇怪的名称和额外的实用程序类型代码片段;代码及其组织非常迟钝,如果不能自动化,我们将手动执行数周。
这是一个广泛的问题,这可能意味着一个重要的解决方案。首先是查看Jurassic之类的东西,看看它是否可以让您查看它的 AST,并计算出在哪个范围内解析了哪些变量。如果这些要在浏览器中运行,还要考虑在 Javascript 中,全局范围是window
对象,您可以通过它“导入”和“导出”,这可以别名为谁知道什么所以你需要做一些事情的数据流分析。
一种可能的替代方法是查看缩小器的实现(我会尝试UglifyJS,因为它明确支持解析为 AST 然后在其上构建缩小),因为这听起来像是他们在确定他们需要做哪些变量名称时不应该缩写。也就是说,缩小器被允许不精确并接受误报,这对您来说可能是个问题。