从 npm explain 到 ABAP 依赖追踪,普通对象、CDS、Package 与 ABAP Cloud 到底该用什么
像我们今天分析npm explain qs时,最有价值的信息并不是qs这个包本身,而是那条完整的来源链。qs为什么会出现在当前工程里,是根项目直接声明的,还是body-parser带进来的,又是不是经由express、@modelcontextprotocol/sdk、@angular/cli一层层传递进来的。npm explain XXX做的事情非常明确,它从当前已经安装好的依赖树出发,把导致目标包被安装的依赖链打印出来。npm 官方文档把它描述为显示使某个包进入当前项目的依赖关系链,并且npm explain还有别名npm why。它甚至可以针对某个具体node_modules路径解释为什么同一个包出现多个版本。(npm Docs)把这个思路搬到 ABAP,答案并不是简单的有或者没有。ABAP 里确实存在多套依赖分析能力,而且其中一些工具在使用体验上已经很接近npm explain XXX,但 ABAP 没有一个对所有开发对象都适用、语义又与npm explain完全一致的单一命令。对于普通 ABAP Repos