为什么捐赠
API 浏览器
升级指南
NEW!
创建新项目
quasar.config 配置文件
从 Webpack 项目转换
浏览器兼容性
TypeScript 支持
目录结构
命令列表
CSS 预处理器
使用 VueRouter 进行页面路由
懒加载 - 代码分割
资源处理
Boot 文件
预取特性
API 代理
配置 Vite
处理 import.meta.env
使用 Pinia 管理状态
代码检查与格式化
测试与审计
开发移动应用
Ajax 请求
开放开发服务器到公网
联系站长
Quasar CLI with Vite - @quasar/app-vite
开发 PWA 的准备工作

我们将利用 Quasar CLI 开发和构建 PWA。构建 SPA、Mobile App、Electron App、PWA 或 SSR 之间的区别仅仅是由 quasar devquasar build 命令中的 mode 参数决定的。

为了构建 PWA,我们首先需要将 PWA 模式添加到 Quasar 项目中:

quasar mode add pwa

如果你想直接开始开发,也可以跳过 “quasar mode” 命令,直接使用:

quasar dev -m pwa

这样,如果项目缺少 PWA 模式,则会自动添加后启动。

项目中会新建一个目录,详情请参考 配置 PWA 页面:

register-sw.js
# (或 .ts) 管理 Service Worker 的 UI 代码(主线程)
manifest.json
# PWA manifest 文件
package.json
# 用于在 /src-pwa 下直接安装 PWA 专属依赖
custom-sw.js
# (或 .ts) 可选的自定义 Service Worker 文件(仅 InjectManifest 模式)
tsconfig.json
# 仅 TypeScript - WebWorker lib,作用域限定在 /src-pwa/sw/

以上所有文件将在后续页面中详细介绍,主要概述如下:

  • register-sw.js 文件是 UI 代码的一部分,用于与 Service Worker 通信。
  • manifest.json 是 PWA 的 manifest 配置文件。
  • 当使用 InjectManifest 模式时,你可以编写自定义 Service Worker(sw/custom-sw.js)。它位于 /src-pwa/sw/ 中,代码运行在 WebWorker 上下文中(无 DOM),与应用的其余部分分开编译。

如果你想使用不同的文件名,可以编辑 /quasar.config 文件:

/quasar.config file

sourceFiles: {
  pwaRegisterServiceWorker: 'src-pwa/register-sw',
  pwaServiceWorker: 'src-pwa/sw/custom-sw',
  pwaManifestFile: 'src-pwa/manifest.json',
}