最近在分析npm explain、npm install和依赖树时,package-lock.json很容易成为理解整个 npm 依赖管理体系的关键入口。一个 JavaScript 项目可能只在package.json里声明了十几个直接依赖,但真正安装进node_modules的包可能达到几百甚至上千个。最终到底安装哪个版本,某个间接依赖最终被提升到哪里,同一个依赖是否被复用,某个包从哪个地址下载,这些解析后的结果都可以进入package-lock.json。
把这个思路带到 SAP ABAP 里,一个很自然的问题就出现了,ABAP 有没有自己的package-lock.json。
比较准确的结论是,传统 SAP ABAP 没有一个能够与 npm 的package-lock.json一一对应的标准文件,也不存在 npm 那种以应用项目为中心,在安装阶段解析完整传递依赖树,再把最终解析结果自动固化成单个 Lock File 的标准机制。
不过,如果把package-lock.json拆成几个职责来看,情况就有意思了。ABAP 的Package、Package Interface、Use Access、Software Component、CTS、TMS、gCTS、ABAP Cloud Released API、Software Component Relation