1

我想检索1.97.0-SNAPSHOT控制器内部的 UI5 版本(例如)。最简单的方法是获取 的值sap.ui.version,但它是一个全局变量,我想避免。

我想,sap.ui.VersionInfo会是一个正确的选择,但是查看它的API,我找不到任何方法,与UI5版本的检索有关。

我还检查了控制器的内部结构(不是太深)sap.ui.Device,但没有版本号。

如何在不使用全局变量的情况下检索 UI5 框架版本?

4

1 回答 1

3

如果您使用的是OpenUI5,访问版本字符串 viasap.ui.version是在使用全局引用时仍然允许的例外情况之一(请参阅“不要使用对全局名称的引用”)。但是您也可以要求sap/ui/Global然后通过 .myRequiredGlobal.version

但是,在SAPUI5的情况下,补丁版本并不总是与 SAPUI5 内核(即 OpenUI5)的版本相同。要可靠地获得正确的 SAPUI5 版本,需要模块sap/ui/VersionInfo. 它的方法load()将返回一个用对象解析的承诺 -https://<host>/resources/sap-ui-version.json- 包含有关当前框架的所有信息,包括其版本。

// VersionInfo required from "sap/ui/VersionInfo"
// VersionUtil required from "sap/base/util/Version"

// Within an async function:
const { version } = await VersionInfo.load(); // version === "1.94.1" !== sap.ui.version (1.94.0)
const versionUtil = new VersionUtil(version);

如您所见,也可以将检索到的版本字符串与提供诸如, , , ,等方法的模块结合起来。sap/base/util/VersiongetMajor()getMinor()getPatch()compareToinRange

相关文档主题


⚠️ 已知问题

sap/ui/VersionInfo独立的 UI5 应用程序中使用模块时(例如,使用 构建ui5 build self-contained -a),生成的最高versionresources/sap-ui-version.json应用程序版本而不是框架的版本。在撰写本文时,应该使用独立应用程序来sap.ui.version代替,但是,如上所述,在 SAPUI5 的情况下,它不会报告确切的补丁级别。

请参阅问题 SAP/ui5-tooling#353

于 2021-11-13T14:02:34.593 回答