1

信息:NPM 也有同样的问题

我想创建一个 UI5 项目,但 UI5 应该使用 NPM 或 Yarn 导入。我从演练第 12 步下载了示例:https ://sapui5.hana.ondemand.com/#/topic/4df1d914e52d4b1aa0805eb01522537e ... 并安装了 Yarn。文件 package.json 已经存在于演示中,命令“yarn install”(以及“npm install”)将所有内容下载到 node_modules 中。然后我改变了 index.html 中的 src 属性,如下所示:

src="../node_modules/@openui5/sap.ui.core/src/sap-ui-core.js"

但是当我运行 index.html 它什么也不做。例如显示此错误:

Failed to load component for container container. Reason: Error: failed to load 'sap/m/library.js' from ../node_modules/@openui5/sap.ui.core/src/sap/m/library.js: script load error.

...文件夹“m”不存在...

还在不存在的文件夹中搜索 library.js:node_modules/@openui5/sap.ui.core/src/sap/ui/core/themes/sap_belize/library.css ...文件夹 sap_belize 丢失。

当我使用默认的 UI5-src 时,一切正常:

src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js"

很多人提到 ui5-src 应该是这样的:

src="resources/sap-ui-core.js"

...但是这样的文件夹不存在,所以它不能工作。

有什么我想念的吗?我原以为这会立即奏效,但我现在已经花了 4 个小时......谢谢。

编辑:当我从https://openui5.org/releases/ 下载整个 UI5 时,一切正常 ……但是 NPM 和 Yarn 有不同的文件夹结构,所以我添加了以下 data-sap-ui-resourceroots,现在看来 UI5以某种方式工作,但仍然缺少主题...

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SAPUI5 Walkthrough</title>
    <script
        id="sap-ui-bootstrap"
        src="../node_modules/@openui5/sap.ui.core/src/sap-ui-core.js"
        data-sap-ui-theme="sap_belize"
        data-sap-ui-resourceroots='{
            "sap.ui.demo.walkthrough": "./",
            "sap.m": "../node_modules/@openui5/sap.m/src/sap/m",
            "sap.base": "../node_modules/@openui5/sap.ui.core/src/sap/base",
            "sap.ui": "../node_modules/@openui5/sap.ui.core/src/sap/ui",
            "sap.ui.layout": "../node_modules/@openui5/sap.ui.layout/src/sap/ui/layout",
            "sap.ui.unified": "../node_modules/@openui5/sap.ui.unified/src/sap/ui/unified",
            "sap.m.themes": "../node_modules/@openui5/themelib_sap_belize/src/sap/m/themes"

        }'
            data-sap-ui-theme-roots='{
              "sap_belize": "../node_modules/@openui5/themelib_sap_belize/src/"
            }'
        data-sap-ui-oninit="module:sap/ui/core/ComponentSupport"
        data-sap-ui-compatVersion="edge"
        data-sap-ui-async="true">
    </script>
</head>
<body class="sapUiBody" id="content">
    <div data-sap-ui-component data-name="sap.ui.demo.walkthrough" data-id="container" data-settings='{"id" : "walkthrough"}'></div>
</body>
</html>

我当前的错误说需要一些不存在的文件:

Could not load theme parameters from: 
file:///C:/_my/sap.m.tutorial.walkthrough.12/node_modules/@openui5/themelib_sap_b>elize/src/sap/ui/core/themes/sap_belize/library-parameters.json
- NetworkError: Failed to execute 'send' on 'XMLHttpRequest':
Failed to load 
'file:///C:/_my/sap.m.tutorial.walkthrough.12/node_modules/@openui5/themelib_sap_belize/src/sap/ui/core/themes/sap_belize/library-parameters.json'.
4

2 回答 2

1

UI5 文档已经回答了您的问题,请参阅使用 OpenUI5 进行应用程序开发,“使用 OpenUI5 进行应用程序开发”部分。

基本上,所有 UI5 示例和教程都假设有一个 UI5 感知中间件 * 将所有 UI5 库映射到单个层次结构 * 使用名为resources/.

ui5 -tooling是开源的,提供了这样一个开箱即用的中间件。SAP 提供 UI5 支持的专有服务器(例如 NetWeaver ABAP、NetWeaver Java,...)包括类似的中间件。

如果您不想使用这样的中间件,则需要额外的配置(就像您对资源根和主题根所做的那样),或者您需要将所有文件一起复制到适合您需要的结构中。

然而,推荐的方法是上面概述的方法。

于 2019-11-06T12:15:13.453 回答
0

获取官方示例应用程序。 https://github.com/SAP/openui5-masterdetail-app

对于您的问题,看起来您混合了本地和服务器文件系统。Node_modules 没有被ui5 serve. 显然你不能对你的文件系统进行 XMLHttpRequest 调用。

src="resources/sap-ui-core.js"由服务器虚拟创建/映射。

于 2019-11-02T00:04:45.260 回答