UI5 Tooling

2023-12-18 19:20
文章标签 ui5 tooling

本文主要是介绍UI5 Tooling,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

UI5 Tooling

UI5 Tooling是一个基于Node.js开发的开源项目。它提供了一个模块化的、可配置的和可扩展的命令行接口,为应用程序、库和重用组件的高效开发定制了UI5框架。

动机

在这里插入图片描述
开源工具重用,灵活扩展,宜集成,先进语言特性,多IDE适用。总之,好用高效。
在这里插入图片描述
从架构去了解UI5 Tooling,我的理解是首先它是一组命令行工具,基于NodeJS集成了File System,Project,Logger,Server,Builder这几个模块,不但可以本地执行,还可以用于SAP webIDE以及SAP Business Application Studio,应用的执行可以通过Web浏览器来进行操作。

在这里插入图片描述
四种类型的Project:

  • Application:
  • Library:
  • Theme-library:
  • Module:

前提和安装

在这里插入图片描述
Node 10以上 + NPM(或者其它依赖 package.json 的package管理器,比如YAML),安装也很简单。
Nodejs官网下载安装,然后执行下面命令既可

npm install --global @ui5/cli

官方文档

安装完成后可以执行ui5 -v来查看是否安装成功以及看一下版本

在这里插入图片描述

启动

以一个简单的例子来说明UI5 Tooling的使用过程。假如我们现在写了一个index.html,并且有相应的js文件和view文件,放在了一个04_copy目录下。
index.html:

<!DOCTYPE html>
<html><head><meta charset="UTF-8"><title>title of 04 copy</title><script id="sap-ui-bootstrap" src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js" data-sap-ui-theme="sap_fiori_3"data-sap-ui-libs="sap.m" data-sap-ui-compatVersion="edge" data-sap-ui-async="true" data-sap-ui-oninit="module:sap/ui/demo/walkthrough/index"data-sap-ui-resourceroots='{"sap.ui.demo.walkthrough": "./"}'></script>
</head>
<body class="sapUiBody" id="content">
</body>
</html>

index.js

sap.ui.define(["sap/ui/core/mvc/XMLView"
], function (XMLView) {"use strict";XMLView.create({viewName: "sap.ui.demo.walkthrough.view.App"}).then(function (oView) {oView.placeAt("content");});
});

App.view.xml

<mvc:Viewxmlns="sap.m"xmlns:mvc="sap.ui.core.mvc"><Text text="Hello World"/>
</mvc:View>

此时如果直接执行index.html肯定是失败的,F12看报错价位非常看到一个报的是CORS, 一个报的是找不到对应的xml文件,还有Failed to load resource 等等。

解决方案就是我们需要将应用部署到Web server中,UI5 Tooling就是为它而生的。

  1. 首先要有一个package.json文件,package.json如果没有的话可以自己创建,也可以使用
npm init --yes

自动创建。
其中只有name属性是必需的。
在这里插入图片描述
自动创建的内容:
在这里插入图片描述

  1. 另外程序的文件结构要注意,如果是类型是application一定要有一个webapp文件夹,如果是Libraries一定要有src文件夹
    否则在init会报错:

在这里插入图片描述
我做这个例子是应用类型,所以正确的结构应该是:
./webapp
./package.json
paackage.json和webapp文件夹同级,webapp中放应用的相关文件
在这里插入图片描述

  1. 这时执行ui5 init会自动生成一个ui5.yaml文件,这个是UI5 Tooling在这个应用中的配置文件,具体参考:
    在这里插入图片描述

执行后的结构:
./ webapp
./ package.json
./ ui5.yaml
在这里插入图片描述
这里metadata中的name属性就是从package.json文件中derive过来的。

此时,如果我们执行ui5 serve命令的话仍然会报错,缺少manifest.json文件
在这里插入图片描述

  1. 创建一个manifest.json文件。manifest.json描述符为存储与应用程序、应用程序组件或库关联的元数据提供了一个中央的、机器可读的、易于访问的位置。可以理解成一个地图,它包含应用程序ID、版本、使用的数据源以及所需的组件和库,告诉服务器怎么读当然的程序。
    我们什么都不写,只写必要项sap.app/id

在这里插入图片描述

  1. 此时再执行ui5 serve即可以启动server,但还是不能正常打开页面,提示找不到sap.ui.core.js
  2. 加入依赖项,需要用到两条命令:一个是向SAPUI5添加一个框架依赖,一个是include需要的libraries。
ui5 use sapui5@latest
ui5 add sap.ui.core sap.m sap.ui.table themelib_sap_fiori_3

在这里插入图片描述
成功后再看yaml文件会发现多了内容:
在这里插入图片描述
7. 执行ui5 serve启动开发服务器
在这里插入图片描述
打开浏览器查看
在这里插入图片描述
这时再打开index.html是可以正常显示的,我们也可以直接将index.html放布出去,这样就不会再打开文件路径,而是直接打开index.html
在这里插入图片描述

在这里插入图片描述

Build编译

使用ui5 build命令进行编译,它是task centric的一组功能,有下面几种编译模式:
在这里插入图片描述
不同的参数会执行不同的task组合,比如默认的是preload形式:会执行下面8个大的task
在这里插入图片描述
编译后的文件中会包含一个Component-preload.js
在这里插入图片描述
对比下几种模式的区别。
为了能对比出效果,首先将sapui5的runtime下载下来,因为之前用的src是“https://sapui5.hana.ondemand.com/resources/sap-ui-core.js
在这里插入图片描述
如下图resouces文件夹就是从runtime文件中解压出来的文件夹,为了搞清楚src路径的设置特意把runtime解压到了上级目录,resources和workthrough是同级的,workthrough下还有04_copy文件夹,然后才是webapp,index.html在webapp文件夹内
在这里插入图片描述
所以src的路径要设置为"../../../resources/sap-ui-core.js" ,这里是一个相对路径,相对谁呢,相对于index.html文件,它上级(webapp)的上级(04_copy)的上级(workthrough)这里才能找到resources文件夹,每一个上级就用../来表示,这里很重要。
在这里插入图片描述
然后再看 ui5 buildui5 build --all能及ui5 build self-contained的区别。

  1. 首先用默认的 ui5 build
    在这里插入图片描述

执行serve dist查看结果
在这里插入图片描述
这时文件加载是会报错
在这里插入图片描述
也就是sap.ui.core.js是没有被编译进去的。

  1. 如果是用 ui5 build --all
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
这时所需的js文件因为已经编译在其中,所以可以正常显示。

  1. 再看另一种模式,ui5 build self-contained
    在这里插入图片描述

这种模式会将当前缺少的module以错误的形式暴露出来。

这篇关于UI5 Tooling的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/509509

相关文章

Aeron:Aeron Tooling

一、Aeron Stat Aeron Stat 输出来自 Aeron 的关键计数器,以及所有活动流和最近活动流的位置和关键计数器。 要使用 Aeron Stat,您必须提供要检查的Media Driver文件夹,例如,如果您将Media Driver context配置为: final MediaDriver.Context mediaDriverCtx = new MediaDriver.

Eclipse启动之后弹出框报错:An internal error occurred during: “Initializing Spring Tooling

Eclipse启动之后弹出框报错:An internal error occurred during: "Initializing Spring Tooling".   解决办法: 1.eclipse中Project——>Clean——>勾选Clean all project,Clean

技术速递|Java on Azure Tooling 3月更新 - Java on Azure 开发工具未来六个月路线图发布

作者:Jialuo Gan - Program Manager, Developer Division At Microsoft 排版:Alan Wang 大家好,欢迎阅读 Java on Azure 工具的三月更新。在本次更新中,我们将分享未来几个月对 Java on Azure 开发工具的投资。此外,我们还将介绍对使用 Connection Strings 管理资源。 我们希望您喜欢这

STS 启动之后, Initializing Java Tooling 卡住问题解决

STS 启动之后, "Initializing Java Tooling",其他操作均被阻塞,导致无法正常工作, 解决方案: 删除当前工作目录下的workspace/.metadata/.plugins/org.eclipse.core.resources/.project,然后重新启动STS

SAP BAS开发Fiori项目中的各种文件详解(manifest.json, package.json, ui5.yaml, i18n等)

1. 背景 在SAP BAS中新建好一个Fiori项目后,系统会自动生成一系列的文件,例如package.json, ui5.yaml, manifest.json, i18n等。对于不熟悉web应用程序开发的同学,这些文件理解起来会很困惑。 在这篇文章中,我会详细介绍这些文件的功能和用途。 2. 文件结构 一个典型的Fiori项目创建好后,一般会生成如下的文件结构。 但Fiori项

乱花渐欲迷人眼 - 让 SAP UI5 应用的日志输出不再素面朝天

我们平时调试 SAP UI5 应用时,Chrome 开发者工具 Console 面板输出的日志,看起来很朴素。 有没有想过,让这些枯燥的日志,用五彩缤纷的方式打印出来?比如看图2的效果。 其实不难。SAP UI5 应用的日志内容,分为不同的 Severity,按照严重程度从高到低,依次是:FATAL,ERROR,WARNING,INFO,DEBUG 和 TRACE,分别使用 conso

[UI5 常用控件] 09.IconTabBar,IconTabHeader,TabContainer

文章目录 前言1. IconTabBar1.1 简介1.2 基本结构1.3 用法1.3.1 颜色,拖放,溢出1.3.2 Icons Only , Inner Contents1.3.3 showAll,Count,key,IconTabSeparator 1.3.4 Only Text1.3.5 headerMode-Inline1.3.6 design,IconTabSeparator-i

[UI5 常用控件] 08.Wizard,NavContainer

文章目录 前言1. Wizard1.1 基本结构1.2 属性1.2.1 Wizard:complete1.2.2 Wizard:finishButtonText1.2.3 Wizard:currentStep1.2.4 Wizard:backgroundDesign1.2.5 Wizard:enableBranching1.2.6 WizardStep:validated1.2.7 Wiza

Java on Azure Tooling 2024年1月更新|Azure Key Vault 支持、示例项目创建支持及更多

作者:Jialuo Gan - Program Manager, Developer Division At Microsoft 排版:Alan Wang 大家好,欢迎来到 2024 年 Java on Azure 工具的首次更新。在本次更新中,我们将介绍对于 Azure Key Vault 支持、基于 Azure 示例项目的创建支持以及 Azure Kubernetes 体验增强。希望您

[UI5 常用控件] 06.Splitter,ResponsiveSplitter

文章目录 前言1. Splitter1.1 属性 2. ResponsiveSplitter 前言 本章节记录常用控件Splitter,ResponsiveSplitter。主要功能是分割画面布局。 其路径分别是: sap.ui.layout.Splittersap.ui.layout.ResponsiveSplitter 1. Splitter 1.1 属性 o