UI5 Tooling中ui5.yaml框架库依赖配置相关问题咨询
UI5 Tooling framework库配置常见问题解答
问题1:ui5.yaml的framework/libraries配置段是否需要与manifest.json中的sap.ui5/dependencies/libs配置完全一致?
不需要完全一致,二者的作用域完全不同:
manifest.json中的sap.ui5/dependencies/libs是运行时依赖声明,供给前端UI5框架运行时读取,用于依赖校验、必要库预加载等逻辑ui5.yaml中的framework/libraries是开发/构建阶段配置,仅供给UI5 Tooling在本地启动、项目构建环节使用
常见的配置差异场景包括:自定义非UI5官方框架的依赖库只需在manifest.json中声明,不需要写入framework/libraries;特殊构建场景下需要UI5 Tooling额外处理的官方库,也可单独在framework/libraries中补充声明。但最佳实践建议二者声明的官方UI5依赖库保持对齐,避免出现构建缺失资源、运行时报依赖错误的问题。
问题2:framework/libraries配置段的作用是将对应依赖库打包进Component-preload.js,该认知是否正确?
该认知不正确。
默认情况下,UI5官方框架库的代码不会被打包进应用的Component-preload.js,framework/libraries的实际作用包括:
- 本地开发启动服务时,UI5 Tooling会从配置的框架源拉取对应库的资源提供本地服务,无需开发者手动下载全量UI5 SDK
- 若配置自托管UI5资源模式,构建时会将声明的框架库的最小化资源、预加载包等提取到构建产物的
resources目录下,支持统一部署 - 若配置CDN加载模式,构建时会完成依赖合法性校验、资源路径替换等处理
仅应用自身的业务代码、自定义控件、项目引入的非UI5官方第三方资源才会被打包进Component-preload.js。
问题3:若我从CDN加载UI5依赖库,是否仍需要在ui5.yaml中配置该libraries段?
仍然需要配置。
就算运行时从CDN拉取UI5框架资源,UI5 Tooling在本地开发、项目构建阶段仍然需要通过该配置感知依赖的官方库,完成以下逻辑:
- 本地开发启动服务时,会完成对应库的资源路径映射/代理,避免出现资源404问题
- 构建阶段会做依赖合法性校验,若应用代码使用了未声明的UI5库的API、控件,会抛出对应警告或错误
- 构建时会自动处理应用内的资源引用路径,确保运行时可以正确从CDN加载对应库资源
若不配置该段,大概率会出现本地开发资源加载失败的问题,同时构建阶段会跳过依赖校验,提升运行时出错的风险。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

