云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

文件存储_阿里云世界排名_安全稳定

小七 141 0

这是今天发布的"为SAPUI5项目引入UI5工具"的后续报道。

自从两年前我们第一次发布UI5工具开源项目以来,我们一直致力于让每一个开发人员都能自由地选择他们在OpenUI5和SAPUI5项目上的工作方式。

在这篇博客文章中,我想让您更详细地了解我们是如何在UI5工具中实现SAPUI5库的使用的。SAPUI5开发的一大飞跃。

随着UI5工具版本2.0的发布,它现在能够自己获取项目所需的所有SAPUI5资源。不再从下载和解包ZIP文件工具.hana.ondemandcom,不再使用代理魔法将请求转发到SAP NetWeaver系统或SAP CDN。

虽然是UI5工具获取资源,但它们托管在注册表.npmjs.org. "所以,"您可能会想,"为什么是UI5工具而不是npmcli获取包呢好吧,故事是这样的……

一般来说,SAPUI5遵循语义版本控制。SAPUI5版本号遵循该方案主次补丁. 虽然补丁大多是bug修复,但小版本带来了新特性。由于新的主要版本尚未发布,旧的SAPUI5应用程序仍然可以使用最新版本的SAPUI5。

然而,SAPUI5由50多个单独的库组成。在每个SAPUI5版本中,这些库都以独特的版本组合排列。我们通常称这种集合为SAPUI5发行版。

示例:SAPUI5发行版1.71.9

请看https://sapui5.hana.ondemand.com/1.71.9/patchinfo.html您可以看到sapui51.71.9包含以下内容:

这里发生了什么?

让我们从sap.fe公司. 这个库没有为1.71代码行提供任何补丁(至少在1.71.9发布之前)。这就是为什么版本1.71.0仍然被使用的原因sap.甘特图到目前为止总共创建了三个补丁:1.71.1、1.71.2和1.71.3.

sap.ui.core和sap.m是特殊的,人工智能核心,因为它们是OpenUI5库。目前,OpenUI5库总是作为一个整体发布的。这意味着,无论何时对任何OpenUI5库进行更改,新的补丁都会包含所有这些库。您可以在这里看到(查看更改日志):https://openui5.hana.ondemand.com/1.71.8/patchinfo.html。

这让我们何去何从?

每一个SAPUI5发行版都结合了不同版本的库。两个库中可能存在相互依赖的更改。这意味着您不能将库X的任何版本与库Y的任何其他版本混合和匹配。您必须完全使用SAPUI5发行版中包含的版本组合(包括修补程序级别)。语义版本控制是npm促进的基本概念之一(参见他们的文档"关于语义版本控制"),它定义了一些不同的东西。任何包的主要版本和次要版本都意味着完全兼容。对于SAPUI5,这意味着版本1.28.9中的库sap.m可以完美地与库一起工作sap.ui.core在版本1.71.0中,

然而,情况并非如此。事实上,版本1.71.0中的sap.m甚至可能与sap.ui.core在版本1.71.1中,

这意味着我们无法正确定义SAPUI5库之间依赖关系的语义版本要求。在1.71.0版本中发布sap.m时,我们无法判断它是否与sap.ui.core版本1.71.1或任何后续版本。

同时,作为UI5开发人员,您只能为您的SAPUI5依赖项定义确切的版本,双线服务器租用,而不能定义版本范围。在错误的版本中安装一个库可能会导致运行时出现不可预见的问题。

正如您所看到的,我们的出发点与npm生态系统的一些基本思想相冲突。所考虑的替代方案似乎并不构成一个易于使用的解决方案:

目前正在讨论的特性可能有助于我们的案例,比如在npm中添加"单例包"的想法。我们也喜欢Yarn和npm对Monorepos和类似工作区的设置的支持不断增加,因为这反映了有多少UI5项目正在开发中。

另一方面,npm处理对等依赖性的计划变更让我们担心,任何解决方案都可能是不完全符合npm、Yarn的解决方案类似的基于节点的包管理器在考虑"节点包"时也会考虑到这一点。

事实上,搭建大数据平台,peerDependencies的使用是我们长期追求的基于npm的解决方案的一部分。这是我们在"非专有"、"最小下载量"、"难以创建不一致状态"和"总体易用性"等问题上相互权衡的至少九种不同解决方案之一。让我们介绍一下这个评估过程的最终胜利者。

由于我们无法使用标准的npm机制来定义依赖关系,我们想出了自己的方法来克服这个问题。

通过将依赖关系解析和版本处理集成到UI5工具中,我们不仅能够解决上述问题,而且还可以另外,为了给您提供更好的总体开发体验,

我们决定将其无缝集成到UI5工具中,而不是提供类似于CLI的包管理器接口来安装包。这意味着您不需要执行其他命令。

对现有SAPUI5项目唯一需要添加的是声明SAPUI5版本和要在ui5.yaml中使用的依赖项列表。

这种方法将在许多方面增强今天的SAPUI5开发设置。

从今天开始,您将看到以下特性: