SAPUI5自定义控件库主题

SAPUI5自定义控件库主题,sapui5,Sapui5,我最近创建了一个SAPUI5库,其中包含许多可重复使用的自定义控件,但我找不到一种方法来创建包含该库的应用程序,以加载定义自定义控件样式的.less主题文件 所以基本上,我想做的是让库将自定义控件样式嵌入到其他应用程序中 以下是manifest.json: { "_version": "1.7.0", "sap.app": { "id": "zproject", "type": "library", "embeds": [], "i18n": "messageb

我最近创建了一个SAPUI5库,其中包含许多可重复使用的自定义控件,但我找不到一种方法来创建包含该库的应用程序,以加载定义自定义控件样式的
.less
主题文件

所以基本上,我想做的是让库将自定义控件样式嵌入到其他应用程序中

以下是
manifest.json

{
"_version": "1.7.0",

"sap.app": {
    "id": "zproject",
    "type": "library",
    "embeds": [],
    "i18n": "messagebundle.properties",
    "applicationVersion": {
        "version": "1.0.0"
    },
    "title": "{{title}}",
    "description": "{{description}}",
    "ach": "",
    "resources": "resources.json",
    "offline": false
},
"sap.ui": {
    "technology": "UI5",
    "deviceTypes": {
        "desktop": true,
        "tablet": true,
        "phone": false
    },
    "supportedThemes": [
        "sap_hcb",
        "sap_belize",
        "sap_belize_plus"

    ]
},

"sap.ui5": {
    "dependencies": {
        "minUI5Version": "1.30.0",
        "libs": {
            "sap.ui.core": {
                "minUI5Version": "1.30.0"
            }
        }
    },
    "contentDensities": {
        "compact": true,
        "cozy": false
    }
},

"sap.platform.hcp": {
    "uri": ""
},

"sap.fiori": {
    "registrationIds": [],
    "archeType": "reusecomponent"
}
以下是我的文件夹结构:


我可以给你更多你可能需要的信息,但我认为这些是最有用的,所以我仍然不知道为什么它没有直接由主题加载,但我找到了两种方法:

  • sa.ui.dom.includeStylesheet()方法可直接在组件中使用,以加载每个组件CSS

  • manifest.json
    文件中的应用程序(包括库)中添加资源(部署库应用程序后,它将
    .less
    文件构建到
    library.css
    文件):

        "resources": {
        "css": [{
            "uri": "css/style.css"
        }, {
            "uri": "/resources/YOURLIBRARY/themes/base/library.css" 
        }]
    },
    

    • 我也遇到了同样的问题,最后我在SAPUI5的api文档中找到了答案:

      在我的例子中,属性
      noLibraryCSS
      被设置为
      true
      ,这意味着没有加载主题。请仔细检查
      library.js
      ,并将此属性设置为
      false
      -或完全删除它,因为默认值为
      false