从 Node.js、Angular 或 SAP Spartacus 开发转到 ABAP 时,很容易产生一个很自然的疑问,既然一个前端工程根目录里通常都有package.json,里面统一记录项目名称、版本、依赖、开发依赖、脚本、运行时要求等信息,那么 ABAP 项目里是否也存在一个类似的东西。
答案是,有类似的机制,但不存在一个能够和package.json一一对应的、所有 ABAP 项目都必须拥有的单一文件。
如果只在 SE80 或 ADT 里寻找一个名叫package.json、manifest.xml或dependencies.yml的 ABAP 后端项目描述文件,基本不会找到。原因并不是 ABAP 缺乏项目元数据和依赖管理,相反,ABAP 对这些事情管理得相当深入,只是 ABAP 的设计年代、运行模型和 Node.js 完全不同,它把package.json集中承担的职责拆散到了 ABAP Package、Package Interface、Use Access、Software Component、Transport、ABAP Language Version、released API、Software Component Relations、API Snapshot、add-on version 以及 CI/CD Pipeline 等不同层次中。
npm 官方文档显示,package.json中的dependencies会把 package name 映射到 version ran