SAP UI5 Tools 執行了 fiori add deploy-config 命令之後,工程檔案發生了哪些變化

注销發表於2022-02-20

我使用這篇文章 使用 generator-easy-ui5 快速建立 SAP UI5 應用的工程結構 介紹的工具,建立了一個 SAP UI5 應用,然後執行了 SAP UI5 Tools 提供的命令 fiori add deploy-config:

之後 SAP UI5 工程裡有兩個檔案自動被該命令修改了:

  • package.json
  • ui5-deploy.yaml

package.json 檔案的變化

執行命令之前:"deploy": "fiori verify"

執行命令之後:"deploy": "ui5 build preload --clean-dest --config ui5-deploy.yaml --include-task=generateManifestBundle generateCachebusterInfo && rimraf archive.zip",

也就是說,fiori deploy 完成的步驟,包含 build,生成 ManifestBundleCachebusterInfo,以及刪除 archive.zip 這幾個階段。

ui5-deploy.yaml 的變化

就是包含了我們在執行 fiori add deploy-config 命令之後,在 deploy 嚮導裡維護的資訊。

可以單獨執行 npm run build 命令:

這個 build 命令執行之後,在 dist 資料夾內,生成了三個新檔案:

  • Component-preload.js
  • manifest-bundle.zip
  • sap-ui-cachebuster-info.json

這個 manifest-bundle.zip 裡也沒有什麼特殊的檔案。

所謂 cache buster 機制,允許 SAP UI5 僅在 SAPUI5 資源已更改時才通知瀏覽器重新整理資源。只要不改變,資源總是可以從瀏覽器的快取中獲取。

SAPUI5 支援 Java 和 ABAP 伺服器以及 SAP Business Technology Platform 的 cache buster 概念。

SAP HANA XS 不支援 cache buster 概念。

如果要永久快取資源,只需將 SAPUI5 引導標記中的 URL 從 resources/sap-ui-core.js 更改為 resources/sap-ui-cachebuster/sap-ui-core.js。

cache buster 允許始終將 SAPUI5 資源放入瀏覽器快取,直到 UI 庫或 Web 應用程式發生更改。 SAPUI5 資源處理程式的預設行為是將資源快取特定的時間量,或者在開發模式下使用 304/NOT MODIFIED 機制檢查 SAPUI5 資源是否是最新的。這兩種機制在最終的生產場景中都不是最優的——這就是實現 cache buster 的原因。 想要使用 cache buster 的應用程式必須明確決定使用它。

cache buster 是資源 servlet 的一部分。 一般來說,對 JavaScript 資源的請求可以透過 cache buster 來處理。 通常這用於引導 JavaScript 的初始請求:

  <script type="text/javascript" 
      id="sap-ui-bootstrap"
      src="resources/sap-ui-cachebuster/sap-ui-core.js"
      data-sap-ui-libs="sap.ui.core,sap.m,sap.ui.table"
    data-sap-ui-theme="sap_belize"></script>

引導 JavaScript 將透過 URL resources/sap-ui-cachebuster/sap-ui-core.js 而不是 resources/sap-ui-core.js 包含。

更多Jerry的原創文章,盡在:"汪子熙":

相關文章