当部署为 SPA 或 PWA 时,Quasar CLI 生成的 distributables 文件夹可以通过静态 Web 服务器提供服务。但是,对于 SSR(服务器端渲染)构建,情况并非如此。在这种情况下,您的 distributables 也包含您的生产 Web 服务器,您可以从 /src-ssr
中对其进行调整。
默认情况下,SSR distributables 使用 Express,但您可以将其替换为您选择的 Web 服务器。
无服务器@quasar/app-webpack v3.2+
如果您要部署到无服务器服务,请阅读有关 SSR 生产导出 的内容,了解如何为此做好准备。
Distributables 文件夹
在 SSR 模式下构建您的应用后($ quasar build -m ssr
),生成的文件夹包含一个用于与 SSR 一起服务的独立 Web 服务器。
您会注意到它包含一个自己的 package.json
文件。它定义了一个名为“start”的 npm 脚本
"scripts": {
"start": "node index.js"
}
所以在部署时,你需要做的就是在服务器上复制这个 distributables 文件夹,在其中使用 yarn/npm install 安装依赖项,然后运行 $ yarn start
。这将启动 Web 服务器并开始监听连接。
提示
构建应用程序后生成的 distributables 文件夹是独立的。它**不需要**项目文件夹中的其他文件即可工作,并且**不依赖于** @quasar/cli
的安装。
提升性能
默认情况下,Web 服务器仅在一个可用的服务器核心上运行。你可以让它使用所有核心。这里有一个解决方案:PM2。
在服务器上安装 PM2 后,你的 npm start 脚本可以改为如下所示
"scripts": {
"start": "pm2 start index.js"
}
使用 Cleavr 部署
你可以使用 Cleavr 将 Quasar SSR 应用部署到多个流行的 VPS 提供商。Cleavr 将自动为你的应用设置启用集群模式的 PM2。
在 Cleavr 中添加一个新的 NodeJS SSR 站点,然后使用以下内容配置 Web 应用设置
- 入口点:index.js
- 构建命令:npx quasar build --mode ssr
- 构件路径:dist/ssr