在另一个项目中使用SAPUI5库

时间:2018-12-05 15:02:53

标签: javascript sapui5

我目前正在尝试了解UI5库,并出于测试目的,使用Full-Stack-IDE中提供的模板创建了一个库项目。

根据我在各种教程中看到的内容,现在应该将应用程序部署到SCP,然后在要使用它的应用程序中声明其存在。为此,您可以在neo-app.json中创建一个条目,如下所示:

"routes": [
    ...,
    {
        "path": "/resources/my/custom",
        "target": {
            "type": "application",
            "name": "testlibrary",
            "entryPath": "/"
        },
        "description": "Utility library"
    }
]

并在manifest.json中如下所示:

"dependencies": {
    "libs": {
        ...,
        "my.custom.testlibrary": {}
    }
},

但是,当我这样做时,我的应用程序会尝试在以下URL下查找该库:https://openui5.hana.ondemand.com/1.52.5/resources/,而不是在我部署该应用程序的SCP上。我的neo-app.json条目和manifest.json条目之间似乎没有链接。我在这里做什么错了?

2 个答案:

答案 0 :(得分:0)

您可以通过右键单击您的项目,然后选择项目>添加对库的引用来添加自定义库。然后选择SAP Cloud Platform作为存储库,并包含您的库。

path的{​​{1}}中产生的route将是neo-app.json-这是在SAP Web IDE中运行本地预览所必需的。在将您的消费者应用程序部署到SAP Cloud Platform时,作为构建过程的一部分,该路由将被重写为排除/webapp/resources/my/custom,即路径将为webapp,以便在部署时也将正确重定向。使用/resources/my/custom进行构建对我来说是正常的。

使用上述方法,您无需在客户应用的"@sap/grunt-sapui5-bestpractice-build": "1.3.64"的每个库中添加data-sap-ui-resourceroots条目。

答案 1 :(得分:0)

在ui5help Slack频道中找到了答案。问题是我的库需要在resourceroots下的index.html中声明。像这样更改我的neo-app.json:

"routes": [
    ...,
    {
        "path": "/webapp/resources/my/custom",
        "target": {
            "type": "application",
            "name": "testlibrary",
            "entryPath": "/"
        },
        "description": "Utility library"
    }
]

并将其添加到我的index.html:

data-sap-ui-resourceroots='{
    "docgen": "./",
    "my.custom.testlibrary": "./resources/my/custom"
}'

解决了该问题。我将继续尝试看看是否必须为每个库执行此操作。