检测依赖项的兼容性中断 来自C++,对JavaScript相当新颖,我发现自己推理如何验证第三方依赖的稳定性。例如,我目前正在升级一个现有的WebGL引擎,它使用Three.js作为一个方便的框架,我发现在过去的版本中,引擎依赖的多个对象属性和功能被删除

检测依赖项的兼容性中断 来自C++,对JavaScript相当新颖,我发现自己推理如何验证第三方依赖的稳定性。例如,我目前正在升级一个现有的WebGL引擎,它使用Three.js作为一个方便的框架,我发现在过去的版本中,引擎依赖的多个对象属性和功能被删除,javascript,Javascript,IIUC,除非被删除的功能或属性被积极使用,否则没有先验的方法来检测此类中断-这对我来说是有意义的,因为您只能在运行时知道实际访问的内容,因此在以某种方式使用某个属性之前,无法确定该属性是否实际存在。第一个问题:这个假设正确吗 如果是这样,我能想到的自动验证API稳定性(或指出中断点)的唯一方法(我在功能和对象属性方面都指API)是维护一套单元测试(或类似测试),基本上使用实际代码使用的所有内容,并且每次更新第三方依赖项时都使用。根据代码库中使用的不同API的数量,这可能会非常、非常迅速地变得单

IIUC,除非被删除的功能或属性被积极使用,否则没有先验的方法来检测此类中断-这对我来说是有意义的,因为您只能在运行时知道实际访问的内容,因此在以某种方式使用某个属性之前,无法确定该属性是否实际存在。第一个问题:这个假设正确吗

如果是这样,我能想到的自动验证API稳定性(或指出中断点)的唯一方法(我在功能和对象属性方面都指API)是维护一套单元测试(或类似测试),基本上使用实际代码使用的所有内容,并且每次更新第三方依赖项时都使用。根据代码库中使用的不同API的数量,这可能会非常、非常迅速地变得单调乏味

由于单元测试目前根本不存在,因此我目前的方法是手动遍历变更日志,查找所有对已删除API的引用,并尝试找出如何替换现有功能,而不破坏更多功能。这显然很糟糕

我希望项目尽可能地保持兼容性,并为此安装策略,如,但在做了一些初步搜索后,我没有在这个主题上找到太多内容(或者我使用了错误的关键字)

最后,我发现自己提出了以下问题:

  • 社会上对如何处理这个问题是否有共识 在上面

  • 是否存在实现解决方案的工具

  • 这些解决方案是可伸缩的吗


许多节点包(以及Node.js本身)都使用。依赖项的版本号可能暗示API是否与以前的版本兼容,至少在理论上是这样。@GOTO0:看看Three.js,它们的版本似乎只像
r78
r79
等等。次要版本和补丁级别对他们来说似乎并不重要。:)