如何检测移除OpenUI5未使用依赖及冗余主题 实现构建包优化
OpenUI5 未使用依赖/主题清理与优化构建方案
先清理配置文件中的显式冗余
对比你提供的两份配置,首先存在明确的冗余声明:
ui5.yaml的framework.libraries节点下声明的sap.tnt、sap.ui.layout、sap.ui.table、themelib_sap_bluecrystal,均未在manifest.json的依赖列表中出现,如果你没有在代码中手动加载这些库/主题,可以直接从配置中删除。sap.ui.core是OpenUI5运行的核心基础库,必须保留,不可删除。- 主题层面如果业务仅使用
sap_fiori_3,直接移除themelib_sap_bluecrystal的声明即可,构建阶段不会再打包该主题的相关资源。
开启自包含构建自动裁剪未使用资源
UI5 Tooling 原生支持自包含构建,构建过程会自动扫描所有代码的依赖引用,剔除未被使用的库、控件、主题资源,最终生成最小化的可部署构建包。你需要在现有ui5.yaml中补充builder配置:
specVersion: '2.6' metadata: name: com.sample.test type: application framework: name: OpenUI5 version: "1.101.0" libraries: - name: sap.ui.core - name: sap.m - name: sap.f - name: themelib_sap_fiori_3 # 若代码中确实用到sap.tnt、sap.ui.layout等库再补充到此处,否则无需保留 resources: configuration: paths: webapp: public builder: settings: selfContained: true # 开启自包含构建,自动收集用到的依赖、剔除未引用资源 minify: true # 开启JS/CSS压缩 resources: excludes: # 手动排除明确不需要的资源 - "**/test/**" - "**/sap_bluecrystal/**" - "**/*.md" - "**/docs/**"
构建与验证
- 若本地未安装UI5 CLI,先执行安装命令:
npm install --save-dev @ui5/cli - 执行依赖一致性检查,提前发现缺失/冗余的依赖声明:
ui5 lint,根据提示调整依赖列表即可 - 执行优化构建命令:
ui5 build self-contained --all,构建完成的产物默认输出到dist目录 - 本地启动静态服务托管
dist目录,验证应用全功能正常:如果出现控件加载失败的报错,根据报错提示将缺失的库补回ui5.yaml和manifest.json的依赖列表,重新构建即可。
注意:你在
manifest.json中声明的ui5customgrid、ui5datemap等自定义库,需要确保已在UI5工具链中正确注册(本地资源路径配置正确或已通过npm引入),否则构建阶段会抛出资源找不到的错误。
内容的提问来源于stack exchange,提问作者Mohammad Zeryab Khan
相关产品推荐
相关产品推荐

