一个大型(不幸的专有)JS库,在构建过程中汇集到它的许多小模块,附带的源映射,以及使用库的内置版本的300多个示例。
我猜是一种依赖跟踪形式?我需要能够修改其中一个小模块,重建大文件,然后只重新验证受此更改影响的示例。 注意:我不在乎这是否需要静态分析,或者我是否必须通过无头浏览器运行所有示例来提取某些内容 - 只要它可以自动化,我就没事了。 / p>
我已经阅读了this等问题的答案,并尝试过预先存在的工具
Madge,但它们似乎都不适合我的情况。 Madge特别值得告诉我哪些模块取决于哪些模块,但这不是我想要的。大多数在线解决方案都基于这样的假设,即您已经使用了require.js
或类似的东西可以背负,但在我的情况下,库只是一个巨大的blob。
我目前的方法是通过简单地添加类似于代码覆盖工具的neededModules["the_file_this_line_comes_from.module.js"] = true
之类的每一行来检测库的内置版本。但是,由于以下几个部分而失败:
Points.prototype = Object.assign( Object.create( Info.prototype ), {
plot: ( function () {
var static = new Background();
return function plot( line, physics ) {
<code>
};
}() ),
copy: function () {
return new this.constructor( this.info, this.history ).copy( this );
}
} );
copy
函数被跟踪/跳过很好,但由于plot
函数是IIFE(对吗?),行var static = new Background();
总是被执行,即使绝对存在没有与Points
模块的连接。
要么帮助我当前的方法以及它与IIFE的问题或完全不同的解决方案。我已经看到Facebook的Jest确实提供了依赖性跟踪,也许有人有经验,或者有一些方法可以合并源地图? 再说一次,只要它是自动化的并且完成就让我们说&lt; 5分钟,无论是静态分析还是一些hacky脚本或其他什么,我都完全没问题了。)
谢谢!