1 | # sw-register-webpack-plugin
|
2 |
|
3 | > 该插件解决 service-worker.js 文件 no-cache 问题,如果在服务端能做到对 /service-worker.js 的 no-cache, 可以忽略此方案。
|
4 | 主要解决服务端不能对 service-worker.js 进行 no-cache 设置,并且要求 service-worker.js 实时监测更新的场景。
|
5 |
|
6 |
|
7 | ## Usage
|
8 |
|
9 | ### 安装
|
10 |
|
11 | ```bash
|
12 | npm install sw-register-webpack-plugin --save-dev
|
13 | ```
|
14 |
|
15 | ### 在 webpack 插件里应用
|
16 |
|
17 | ```js
|
18 | // ...
|
19 | import SwRegisterWebpackPlugin from 'sw-register-webpack-plugin';
|
20 | // ...
|
21 |
|
22 | webpack({
|
23 | // ...
|
24 | plugins: [
|
25 | new SwReginsterWebpackPlugin(/* options */);
|
26 | ]
|
27 | // ...
|
28 | });
|
29 |
|
30 | // ...
|
31 | ```
|
32 |
|
33 |
|
34 |
|
35 | ## Options 参数
|
36 |
|
37 | ### swPath
|
38 |
|
39 | ```js
|
40 | {
|
41 | swPath: '/service-worker.js'
|
42 | }
|
43 | ```
|
44 |
|
45 | `swPath` 的默认值是 `/service-worker.js`
|
46 | `swPath` 如果想换其他的文件名,必须要求是绝对路径的静态资源名,并且能够访问的到
|
47 |
|
48 |
|
49 | ### version
|
50 |
|
51 | ```js
|
52 | {
|
53 | version: 'this is a version string'
|
54 | }
|
55 | ```
|
56 | `version` 默认值是当前时间的时间版本字符串
|
57 |
|
58 |
|
59 | ### filePath
|
60 |
|
61 | ```js
|
62 | {
|
63 | filePath: './src/sw-register.js'
|
64 | }
|
65 | ```
|
66 |
|
67 | `filePath` 默认值是 `./src/sw-register.js`
|
68 | 如果没有配置这个字段,插件会优先寻找 `./src/sw-register.js` 文件
|
69 | 如果还是没找到这个文件,插件会使用内置的 sw-resgiter.js 文件进行 service worker 文件注册。
|
70 |
|
71 |
|
72 | ### 注意事项
|
73 |
|
74 | `sw-register-webpack-plugin` 有一个内置的 message 时间处理函数,其作用是专门接受 service-worker.js 发送的 postMessage 事件
|
75 | 我们会借助这个事件完成 service-worker.js 文件更新的实时监测。
|
76 |
|
77 | 当 service-worker.js 进入 activate 状态,可以做如下操作:
|
78 |
|
79 | ```js
|
80 | clients[0].postMessage('updateMessage')
|
81 | ```
|