UI5代码压缩混淆方案对比及@ui5/cli配置问题咨询
问题1解答
Grunt的grunt-openui5方案属于官方不再主推的遗留方案,@ui5/cli 是目前UI5生态官方指定的标准构建工具:
grunt-openui5从2019年起就停止了新功能迭代,仅做必要的安全和兼容性bug修复,官方所有新的构建特性、性能优化都只会在UI5 Tooling(即@ui5/cli)中落地- 目前OpenUI5、SAPUI5官方提供的项目模板、脚手架,以及SAP官方开发环境的默认构建工具均为
@ui5/cli
问题2解答
@ui5/cli 默认必须输出到dist目录,无法直接跳过该目录生成文件,但可以通过配置+脚本调整,实现仅保留你需要的压缩混淆后的Component-preload.js:
- 首先调整
ui5.yaml配置,关闭调试文件生成、排除所有不需要输出的资源,最终dist目录内仅会保留Component-preload.js,配置示例如下:
specVersion: "2.5" type: application metadata: name: com.myapp framework: name: OpenUI5 version: 1.95.0 resources: configuration: paths: webapp: src/webapp builder: # 关闭调试文件生成,不再输出*-dbg.*格式的调试版文件 debug: false cachebuster: signatureType: hash componentPreload: namespaces: - "com/myapp" paths: - "src/webapp" # 配置输出资源过滤规则 resources: excludes: # 先排除所有非preload的业务资源 - "**/*.js" - "**/*.xml" - "**/*.html" - "**/*.css" - "**/*.properties" - "**/*.json" # 豁免保留Component-preload.js - "!**/Component-preload.js"
- 如果连
dist目录都不想保留,可以直接修改NPM脚本,构建完成后将Component-preload.js移动到目标路径、再删除dist目录即可,示例脚本如下(Mac/Linux环境):
"scripts": { "build-preload-only": "ui5 build preload && mv dist/Component-preload.js ./ && rm -rf dist" }
如果是Windows环境,可以把命令调整为适配cmd/PowerShell的语法,也可以安装跨平台的文件操作工具保证命令兼容性。
内容的提问来源于stack exchange,提问作者Mike
相关产品推荐
相关产品推荐

