我有一个自定义库com.foo.library我希望将其包含为我构建的类似Fiori的应用程序的依赖项。
SAP Fiori Launchpad for Developers - > Launchpad应用程序的最佳实践
在component.js配置文件中声明配置信息,如图标的位置和库依赖项
有意义,将我的库添加为依赖项看起来像
dependencies: {
libs: ["sap.m", "sap.ui.layout", "com.foo.library"],
components: []
},
对于Fiori,您必须使用相对路径的约束。
例如,对于我的工作依赖,必须在
找到/资源/ COM /富/文库
将自定义库上传到ABAP SAPUI5存储库并使其以相对路径提供的步骤是什么?
编辑:
目前我使用
在Component.init上加载了库 sap.ui.getCore().loadLibrary("com.foo.library", "absolute path to library");
它有效,但我想将库设置为依赖
ComponentMetadata.prototype._loadDependencies = function() {
..
if (aLibraries) {
jQuery.each(aLibraries, function(i, sLib) {
jQuery.sap.log.info("Component \"" + that.getName() +
sap.ui.getCore().loadLibrary(sLib);
});
}
从上面的代码我可以看到当组件加载库依赖项时没有传递url的选项,所以我假设必须找到相对于资源的库
答案 0 :(得分:3)
在你的Fiori应用程序中:
将您的依赖项放入app描述符(manifest.json)(或者如果Component.js中的配置中没有使用app描述符)
dependencies: {
libs: ["sap.m", "sap.ui.layout", "com.foo.library"],
components: [com.foo.component]
}
让sap.ui.core知道在哪里搜索你的库的命名空间。(你的Component.js的顶部)
jQuery.sap.registerModulePath("com.foo", "/Path/on/the/server/");
现在您可以使用您的依赖项了。这就是为什么:
在加载模块之前,其模块的最长注册前缀 搜索名称,并将关联的URL前缀用作前缀 对于请求URL。附加模块名称的其余部分 使用斜杠(' /')替换点('。')的请求网址。
注册和搜索仅适用于全名域。