渐进式 Web 应用 PWA
icejs 持续为应用提供优秀的性能体验,借助 ice.js 提供的 PWA 能力,您可以:
- 增强应用的可靠性:在网络不稳定、即便断网情况下,也能快速访问页面
- 提升应用性能体验:根据我们的实际测量,PWA 能大幅提升页面加载速度
- 简单:无需关心 Service Worker 的底层 API,快速构建您的 PWA 应用
#
开启 PWA在工程配置文件 build.json
中开启:
执行构建命令 npm run build
,构建产物中会新增 sw.js
文件。
#
自定义 PWA 配置使用方式如下:
配置项如下:
dev
- boolean
是否在 dev 环境下开启 pwa 能力。默认为 true
。
basename
- string
应用的 basename。若配置应用的 basename,也需要在此进行配置。默认为 '/'
。
scope
- string
Service Worker 的作用域, 默认为 '/'
。Service Worker 默认在应用全域生效,若配置 /app
,则 Service Worker 仅在 /app
下生效。
sw
- string
生成的 Service Worker 文件名,默认为 sw.js
。
runTimeCaching
- Array;
额外的运行时缓存设置。比如修改内置的图片资源的运行时缓存处理:
该参数的更多配置,可以参考 RuntimeCachingEntry。
additionalManifestEntries
- Array;
添加需要额外预缓存的文件。比如:
skipWaiting
- boolean
当新的 Service Worker 注册成功后,是否立即执行 skipWaiting
。默认 true
。
#
添加 Manifest 文件Manifest 文件是在 JSON 文本文件中提供有关应用程序的信息。Manifest 可以将应用安装到设备的主屏幕。
在 ice 应用中,你可以通过在 public
文件下添加一个 manifest.json
文件,可参考如下配置:
icejs 会默认将此文件打包至构建产物目录下,并将其添加至 index.html
文件中。
#
部署限制当试图注册一个在部署在 CDN 上的 Service Worker,在浏览器中会出现这个错误:
因此,生成的 sw.js
需要部署到应用的 host 下。