• 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
    
    • 1

    官方文档

    安装完成后可以执行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>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    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");
    	});
    });
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    App.view.xml

    <mvc:View
       xmlns="sap.m"
       xmlns:mvc="sap.ui.core.mvc">
       <Text text="Hello World"/>
    </mvc:View>
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

    自动创建。
    其中只有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
    
    • 1
    ui5 add sap.ui.core sap.m sap.ui.table themelib_sap_fiori_3
    
    • 1

    在这里插入图片描述
    成功后再看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以错误的形式暴露出来。

  • 相关阅读:
    抛弃模板,一种Prompt Learning用于命名实体识别任务的新范式
    算法入门 | 分治策略
    【Apache Flink 介绍与学习】
    Linux:C_单机五子棋
    【k8s】(四)kubernetes1.29.4离线部署之-组件安装
    基于蒙特卡洛法的规模化电动车有序充放电及负荷预测(Python&Matlab实现)
    Linux 下孤儿进程与僵尸进程详解
    【目标检测】目标检测界的扛把子YOLOv5(原理详解+修炼指南)
    VUE快速入门-2
    适合初学者的CNN数字图像识别项目:Digit Recognizer with CNN for beginner
  • 原文地址:https://blog.csdn.net/xiayutian_c/article/details/125450662