Sapui5 如果UI5清单中未更新库预加载文件/库依赖项,会发生什么情况?

Sapui5 如果UI5清单中未更新库预加载文件/库依赖项,会发生什么情况?,sapui5,ui5-tooling,Sapui5,Ui5 Tooling,在应用程序开发人员的最佳实践中,这一部分是这样写的: 使您的库依赖项保持最新 将为您在应用程序描述符或OpenUI5引导程序中定义的每个库加载库预加载文件、库样式和文本翻译。始终在清单中定义库,并删除不打算在代码中使用的所有库 例如: “sap.ui5”:{ “依赖项”:{ “Mini5版本”:“1.85.0”, “libs”:{ “sap.ui.core”:{}, “sap.m”:{}, “sap.ui.layout”:{} } } ... } 我是否正确理解,在libs中,我必须添加出现在

在应用程序开发人员的最佳实践中,这一部分是这样写的:

使您的库依赖项保持最新
将为您在应用程序描述符或OpenUI5引导程序中定义的每个库加载库预加载文件、库样式和文本翻译。始终在清单中定义库,并删除不打算在代码中使用的所有库

例如:

“sap.ui5”:{
“依赖项”:{
“Mini5版本”:“1.85.0”,
“libs”:{
“sap.ui.core”:{},
“sap.m”:{},
“sap.ui.layout”:{}
}
}
...
}

我是否正确理解,在
libs
中,我必须添加出现在
sap.ui.define([…])
中的UI5应用程序的任何控制器的所有库?如果我忘记在这里添加库,会发生什么?它只是从
组件预加载.js中排除,并以非优化方式加载,还是存在更严重的缺点?

组件预加载.js
只包含应用程序的元素,而不包含任何UI5代码

要回答您的问题,请看一下这个小的

加载时,请执行以下操作:

“sap.ui5”:{
“依赖项”:{
“MINUI5版本”:“1.81.2”,
“libs”:{
“sap.ui.core”:{},
“sap.m”:{}
}
},
打开DevTools并查看网络选项卡。由于
manifest.json
中的lib引用,因此
library preload.js
都在Component.js之前加载

删除时:

“sap.ui.core”:{},
“sap.m”:{}

manifest.json
再次运行该应用程序,然后您可以看到所有UI5元素都在
component.js
之后逐个加载。这只会减慢应用程序的速度。

是的,为了从性能优化中获益,您必须将
sap.UI5/dependencies/libs
部分保留在
manifest.json中de>根据应用程序中使用的控制库始终保持最新。即,不仅
“sap.ui.core”
“sap.m”
,而且,如果您的应用程序使用
sap.ui.table
,例如,
“sap.ui.table”

如果您有控制库,这些库不需要在应用程序启动时直接预加载,但应该按需加载,您可以将
lazy:true
分配给这些库:

“libs”:{
“sap.ui.core”:{},
“sap.m”:{},
“sap.ui.comp”:{
“懒惰”:正确
}
}
但“lazy”:true
纯粹是信息性的。在应用程序中,这些lib应该在使用前显式加载

//从“sap/ui/Core/Core”中需要核心
等待核心。(“sap.ui.comp”,/*async:/true);//延迟加载此重载库

这同样适用于以下情况:

项目所需的所有库必须列在框架配置的
部分:

框架:
名称:OpenUI5
版本:1.82.0
图书馆:
-名称:sap.ui.core
-姓名:sap.m
-名称:sap.ui.table