该插件主要适用于纯静态资源的本地化,或者是通过webpack打包后赖加载的模式,理论上支持vue react;已在vue中进行了实验
同样也可以直接在html中使用将项目中的loader.js内的代码直接放在script表标签内
插件支持两种缓存模式 localStorage 和indexedDB;可进行配置,如果配置了indexedDB,在发现浏览器不支持的情况下回降级到localStorage
如果已经是一些现有的项目比如项目中的链接地址都是已知的;可以将项目中loader.js中的代码直接复制到项目中,同时执行window._cache_local_.setBaseConfig({...options}), 注意参数的配置,同时注意版本号verison,一旦静态资源有变化必须更新版本号
示例:可以查看example.html
插件本身依赖于webpack、html-webpack-plugin(index.html模板) 、min-css-extract-plugin(css提取),当然如果不单独提取css也没有关系, 示例查看example目录中的vue
const LocalCache = require('localcache');
config.plugin('LocalCache').use(LocalCache, [{
filename: 'css/[name].[contenthash:8].css',
chunkFilename: 'css/[name].[contenthash:8].css',
maxRetries: 3,
type: 'localstorage',
cacheIsOn: process.env.NODE_ENV === 'production',
version: version,
otherJs:''
...
}])
参数 |
类型 |
说明 |
filename |
string |
文件打包格式vue中默认为hash格式[name].[contenthash:8]. |
chunkFilename |
同上 |
|
maxRetries |
number |
当不支持缓存的时候遇到js加载进行重试的次数 |
type |
string |
支持localStorage、indexedDB,未进行配置的情况不走缓存逻辑 |
cacheSwitch |
boolean |
是否开启缓存模式 |
version |
number |
版本号,主要是用于清空历史缓存的静态资源信息 |
jsOmit |
RegExp |
不需要处理的js |
cssOmit |
REgExp |
不需要处理的css |
otherJs |
OtherStaticContent |
额外在html中追加的js外链或者是code |
otherCss |
OtherStaticContent |
额外在html中追加的css外链或者是code |
baseKey |
string |
localStorage模式下的缓存key前缀 默认为_cache_local_loader_ |
dbName |
string |
indexedDB模式下的库的名称默认为static |
storeName |
string |
indexedDB模式下的库的表名 默认为test |
storeKey |
string |
indexedDB模式下建表的主键key 默认为 path |
cssExtraFn |
Function |
通过ajax请求将静态资源下载的code额外进行处理 再返回code,比如需要替换某个字符串等等,一般业务场景应该用不到 |
jsExtraFn |
Function |
同上, |
属性 |
类型 |
说明 |
innerHTML |
string |
需要插入的代码块 |
url |
string |
需要插入的外链 |