Sapui5 WebIDE中用于重用帮助器类的全局实用程序项目

Sapui5 WebIDE中用于重用帮助器类的全局实用程序项目,sapui5,sap-fiori,sap-web-ide,Sapui5,Sap Fiori,Sap Web Ide,我尝试在SAPWebide中开发一个实用程序项目,以便与其他开发人员共享有用的实用程序类。让我们称之为基础项目。在我的CustomProject中,我想使用对该BaseProject的引用,并使用例如格式化程序 因此,我在WebIDE中创建了一个名为 com.company.base 和一个自定义项目 my.custom.app 在com.company.base项目中,我有以下文件夹结构: com.company.base +--- webapp/ +--- formatter/

我尝试在SAPWebide中开发一个实用程序项目,以便与其他开发人员共享有用的实用程序类。让我们称之为基础项目。在我的CustomProject中,我想使用对该BaseProject的引用,并使用例如格式化程序

因此,我在WebIDE中创建了一个名为

com.company.base

和一个自定义项目

my.custom.app

在com.company.base项目中,我有以下文件夹结构:

com.company.base
+--- webapp/
     +--- formatter/
          Formatter.js
     Component.js
     library.js
     manifest.json
neo-app-json
library.js如下所示:

sap.ui.define(["jquery.sap.global", "sap/ui/core/library"
], function(jQuery) {

    "use strict";

    sap.ui.getCore().initLibrary({
        name: "com.company.base",
        version: "1.0.0",
        dependencies: ["sap.ui.core"],
        types: [],
        interfaces: [],
        controls: [
            "com.company.base.formatter.Formatter"
        ],
        elements: []
    });

    return com.company.base;

}, /* bExport= */ false);
jQuery.sap.registerModulePath("com.company.base", "/comcompanybase/webapp");
jQuery.sap.require("com.company.base.Component");
sap.ui.define([
    "my/custom/app/controller/BaseController", 
    "com/company/base/formatter/Formatter"
], function(BaseController, Formatter) {

    "use strict";

    return BaseController.extend("my.custom.app.controller.Master", {
        formatter: Formatter,
        onInit: function() {
            //some coding
        }
    });
});
我将基本项目部署到hcp作为

公司基地

在我的自定义应用程序中,我向neo-app.json添加了以下路由

{
    "path": "/comcompanybase",
    "target": {
        "type": "application",
        "name": "comcompanybase"
    },
    "description": "Base Project"
},
在component.js的init方法中进行了如下注册:

sap.ui.define(["jquery.sap.global", "sap/ui/core/library"
], function(jQuery) {

    "use strict";

    sap.ui.getCore().initLibrary({
        name: "com.company.base",
        version: "1.0.0",
        dependencies: ["sap.ui.core"],
        types: [],
        interfaces: [],
        controls: [
            "com.company.base.formatter.Formatter"
        ],
        elements: []
    });

    return com.company.base;

}, /* bExport= */ false);
jQuery.sap.registerModulePath("com.company.base", "/comcompanybase/webapp");
jQuery.sap.require("com.company.base.Component");
sap.ui.define([
    "my/custom/app/controller/BaseController", 
    "com/company/base/formatter/Formatter"
], function(BaseController, Formatter) {

    "use strict";

    return BaseController.extend("my.custom.app.controller.Master", {
        formatter: Formatter,
        onInit: function() {
            //some coding
        }
    });
});
最后,我能够在自定义应用程序的控制器中使用格式化程序,如下所示:

sap.ui.define(["jquery.sap.global", "sap/ui/core/library"
], function(jQuery) {

    "use strict";

    sap.ui.getCore().initLibrary({
        name: "com.company.base",
        version: "1.0.0",
        dependencies: ["sap.ui.core"],
        types: [],
        interfaces: [],
        controls: [
            "com.company.base.formatter.Formatter"
        ],
        elements: []
    });

    return com.company.base;

}, /* bExport= */ false);
jQuery.sap.registerModulePath("com.company.base", "/comcompanybase/webapp");
jQuery.sap.require("com.company.base.Component");
sap.ui.define([
    "my/custom/app/controller/BaseController", 
    "com/company/base/formatter/Formatter"
], function(BaseController, Formatter) {

    "use strict";

    return BaseController.extend("my.custom.app.controller.Master", {
        formatter: Formatter,
        onInit: function() {
            //some coding
        }
    });
});
每次我第一次启动应用程序时,都没有找到引用。第二次一切正常

此外,每次更改后,我都必须将应用程序部署到hcp。有没有办法使用WebIDE的lokal工作区作为参考?我尝试使用.././向上导航,但这对我不起作用。

WebIDE项目: 运行->运行配置->创建新配置(使用所需参数),此外,在“高级设置”中选中复选框“首先使用我的工作区”

这将防止您在每次更改后需要部署。

WebIDE项目: 运行->运行配置->创建新配置(使用所需参数),此外,在“高级设置”中选中复选框“首先使用我的工作区”


这将防止您在每次更改后都需要部署。

Thix修复了部署的问题。但在第一次加载stimm时出错。你知道这是从哪里来的吗?你在消费者应用程序的清单中添加了库的依赖项了吗?没有,我只在neo-app.json中添加了引用。感谢您的提示,我想在manifest.json中添加它作为库依赖项解决了这个问题。如果它对您有效,那么您可以接受这个答案;)我尝试了这个,但是发生了一个library.js找不到的错误。Thix修复了部署的问题。但在第一次加载stimm时出错。你知道这是从哪里来的吗?你在消费者应用程序的清单中添加了库的依赖项了吗?没有,我只在neo-app.json中添加了引用。感谢您的提示,我想在manifest.json中添加它作为库依赖项解决了这个问题。如果它对您有效,那么您可以接受这个答案;)我尝试了这个,但是发生了一个library.js找不到的错误