天天看點

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

(1) yarn build:libs

這個指令行是完成本地 library 的建構。需要将近10分鐘。

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

(2) 這個指令是完成 shell app 的建構。

yarn build --prod

指令行裡出現的 40.76 來自 .env-cmdrc 檔案:

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器
SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器
SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

需要将近3分鐘。

(3) 使用如下指令進行伺服器端 shell 應用的建構:

yarn build:ssr
SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

需要将近1分鐘。

(4) 以伺服器端模式啟動 Spartacus 伺服器:

yarn serve:ssr

如果看到下面的提示消息,說明啟動成功了:

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

如果 Node.js 伺服器背景觀察到這種消息:SSR rendering exceeded timeout 3000, 說明預設的 3000 毫秒時間不足以完成首頁的伺服器段渲染:

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

此時修改 ng-express-engine-decorator.ts 裡 tineout,然後重新執行 yarn:build:setup, yarn build --prod 和 yarn build:ssr.

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

改成一個特殊的值比如 19821039, 友善将來查找。

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

最後在 dist 檔案夾的 main.js 裡面能夠搜尋到這個特殊值。

怎麼還是 3000?

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

發現了process.env 裡的這個環境變量 SSR_TIMEOUT:

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

那麼我就建立一個 ssr.bat 的批處理檔案,内容如下:

set SSR_TIMEOUT=1981231&& yarn serve:ssr
SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

結果又遇到新問題:Http failure response for https://xxxxx

An unknown http error occurred:

是以 bat 檔案的内容應該改成:

set SSR_TIMEOUT=1981231&& yarn serve:ssr:dev

這樣,可以使用參數 cross-env NODE_TLS_REJECT_UNAUTHORIZED=0 啟動 node.js 伺服器,繞過 certificate 問題。

然而又遇到新問題:cannot find module ./353.js??

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

這種情況下,從頭開始對整個 Spartacus 進行建構,然後重試。

果然,全部從頭做之後就正常了:

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

213kb,這個資料量才是正常的:

SAP Spartacus develop branch 的伺服器端渲染啟動方式iOS 浏覽器安卓浏覽器

Spartacus 支援移動和平闆電腦平台上的常青網絡浏覽器。

iOS 浏覽器

在基于 iOS 的裝置上,Spartacus 支援 Safari、Chrome 和其他浏覽器。 盡管不是每個浏覽器都經過測試,但 Spartacus 應該可以與任何 iOS 浏覽器相容,因為所有 iOS 浏覽器都使用基于 Webkit 的 iOS 浏覽器引擎。

安卓浏覽器

在基于 Android 的裝置上,Spartacus 在基于 Chromium 和 Blink 布局引擎的 Chrome 上進行了測試。 任何使用相同引擎的 Android 浏覽器都可能與 Spartacus 一起使用。 其他使用不同浏覽器引擎的浏覽器沒有經過測試,但那些使用 Webkit 的浏覽器應該也能正常工作。