【问题标题】:How to get a version of UI5 framework within the controller?如何在控制器中获取 UI5 框架的版本?
【发布时间】:2021-11-13 12:22:11
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: sapui5 ui5-tooling


    【解决方案1】:

    如果您使用的是 OpenUI5,通过sap.ui.version 访问版本字符串是使用全局引用时仍然允许的例外情况之一(请参阅"Don't use references to global names")。但您也可以要求sap/ui/Global,然后通过myRequiredGlobal<strong>.version</strong> 访问它。

    但是,对于 SAPUI5,补丁版本并不总是与 SAPUI5 内核(即 OpenUI5)的版本相同。要可靠地获得正确的 SAPUI5 版本,需要模块 sap/ui/VersionInfo。它的method load() 将返回一个用对象解析的承诺 - same as https://<em>&lt;host&gt;</em>/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);
    

    如您所见,还可以将检索到的版本字符串与提供getMajor()getMinor()getPatch()compareToinRange 等方法的module sap/base/util/Version 组合起来。

    相关文档主题


    ⚠️ 已知问题

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

    请参阅issue SAP/ui5-tooling#353

    【讨论】:

    • @Mike sap.ui.version 仅指 UI5 核心版本(即 OpenUI5 版本)。如果您使用的是 SAPUI5,则补丁版本号可能与 sap.ui.version 的补丁版本不同。例如。访问ui5.sap.com/1.94.1。在控制台中输入sap.ui.version 会返回"1.94.0"(== 核心版本)而不是"1.94.1"
    • @Mike 在控制器内使用sap.ui.version 仍然被 UI5“允许”。我相应地增强了我的答案。谢谢
    • @Mike 我也注意到了。但它在linked documentation 中有所提及。请参阅“不要使用对全局名称的引用”部分
    • 我创建了一个交叉发布的问题,我将关闭它,稍后会得到回复。
    • @Mike 如果您的项目是一个独立的应用程序,最好依赖sap.ui.version(但如果是 SAPUI5,则没有确切的补丁级别)。相应地增强了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2019-11-07
    • 2015-07-30
    • 2014-06-23
    • 2017-09-13
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多