service-worker-precache-generator
v1.0.0
Published
一个webpack插件用来自动生成service worker脚本,该脚本可以`预缓存`webpack`打包出来的静态文件`和 `publicDir目录下的静态文件`,并且`支持cdn`。 # 参考 sw-precache-custom是基于sw-precache v5.2.1 sw-precache-webpack-plugin-custom基于sw-precache-webpack-plugin v0.11.5
Downloads
1
Readme
作用
一个webpack插件用来自动生成service worker脚本,该脚本可以预缓存
webpack打包出来的静态文件
和
publicDir目录下的静态文件
,并且支持cdn
。
参考
sw-precache-custom是基于sw-precache v5.2.1 sw-precache-webpack-plugin-custom基于sw-precache-webpack-plugin v0.11.5
原组件缺陷
不能处理非webpack输出的静态文件
只能获取webpack打包出来的asset,不能处理publicDir目录下的静态文件,比如:favicon.icon,manifet文件。
不支持cdn
在同一目录下只能对应一个publicPath,因此不支持CDN。比如我PUBLIC__PATH设置成http://cdn.example.com,打包出来下面文件,那么转换如下,这样index.html就访问不到了。
index.html ->http://cdn.example.com/index.html
bundle.12345678.js ->http://cdn.example.com/bundle.12345678.js
我的源代码修改
针对sw-precache-webpack-plugin-custom
- option传入
publicDir
参数作为静态目录文件 - 读取静态目录文件,并把这些文件和打包出来的文件合并传入sw-precache
- 生成一个静态目录文件的映射对象,映射的public_path是'/',因为这些类似于index.html,favicon.icon不走cdn。
代码主要修改在于增加了hackConfig
函数和调用。
针对sw-precache
- 额外增加选项
staticFileGlobsMap
,当处理传入的静态文件时候,如果有映射的,就走映射,不进行文件名到public_path的替换,为了支持cdn。