當部署為 SPA 或 PWA 時,由 Quasar CLI 產生的 distributables 資料夾可以由靜態網路伺服器提供服務。但是,SSR(伺服器端渲染)建置並非如此。在這種情況下,您的 distributables 也包含您的生產網路伺服器 – 可以從 /src-ssr
進行調整。
預設情況下,SSR distributables 使用 Express,但您可以將其替換為您選擇的網路伺服器。
無伺服器@quasar/app-webpack v3.2+
如果您要部署到無伺服器服務,請閱讀 SSR 生產導出,了解如何為其做好準備。
Distributables 資料夾
在 SSR 模式下建置您的應用程式後 ($ quasar build -m ssr
),產生的資料夾包含一個針對使用 SSR 服務進行調整的獨立網路伺服器。
您會注意到它包含自己的 package.json
檔案。它有一個定義的 npm 腳本,稱為 “start”。
"scripts": {
"start": "node index.js"
}
因此,部署時您需要做的是將此 distributables 資料夾複製到您的伺服器上,yarn/npm 安裝其中的依賴項,然後運行 $ yarn start
。這會啟動網路伺服器並開始監聽連線。
提示
在建置您的應用程式後產生的 distributables 資料夾是獨立的。它不需要您的專案資料夾的其餘部分即可工作,並且不依賴於 @quasar/cli
的安裝。
提升效能
預設情況下,網路伺服器僅在可用伺服器核心之一上運行。您可以做的是使其使用所有核心。有一個解決方案:PM2。
在您的伺服器上安裝 PM2 後,您的 npm start 腳本可以如下所示:
"scripts": {
"start": "pm2 start index.js"
}
使用 Cleavr 部署
您可以使用 Cleavr 將 Quasar SSR 應用程式部署到幾個流行的 VPS 提供商。 Cleavr 將自動為您的應用程式設定啟用叢集模式的 PM2。
將新的 NodeJS SSR 網站新增到 Cleavr,然後使用以下內容設定 Web 應用程式設定
- 進入點: index.js
- 建置指令: npx quasar build --mode ssr
- Artifact 路徑: dist/ssr