Preact PWA,配置 maximumFileSizeToCacheInBytes 来改变这个限制

Posted

技术标签:

【中文标题】Preact PWA,配置 maximumFileSizeToCacheInBytes 来改变这个限制【英文标题】:Preact PWA, configure maximumFileSizeToCacheInBytes to change this limit 【发布时间】:2021-10-18 14:47:22 【问题描述】:

我正在使用 Preact Cli 创建 PWA。

编译时出现警告:

/bundle.js 为 2.15 MB,不会被预缓存。配置 maximumFileSizeToCacheInBytes 来改变这个限制。

由于 Preact CLI 在构建时会生成一个 service worker,因此要自定义 service worker, 我创建了一个使用 Preact CLI 高级 API 的自定义“sw.js”。

问题是如何使用这个 API 来改变“maximumFileSizeToCacheInBytes”(如果可能的话)。

【问题讨论】:

【参考方案1】:

这绝对是您需要小心不要意外预缓存大型项目的情况,但如果您需要达到限制,您可以使用preact.config.js 文件来执行此操作。所有这一切都是通过 WorkBox 的 InjectManifest 插件完成的,因此编辑 service worker 本身不会做任何事情。

preact.config.js

export default 
    webpack(config, env, helpers, options) 
        const manifestPlugin = helpers.getPluginsByName(config, 'InjectManifest')[0];
        if (manifestPlugin) 
            manifestPlugin.plugin.config.maximumFileSizeToCacheInBytes = 5 * 1024 * 1024; // or however much you need. This is 5mb.
         
    

【讨论】:

以上是关于Preact PWA,配置 maximumFileSizeToCacheInBytes 来改变这个限制的主要内容,如果未能解决你的问题,请参考以下文章

一份来自Treebo 的 React 与 Preact PWA 性能分析报告

Treebo网站的React与Preact PWA性能分析报告(上)

前端每周清单: iOS 11 Viewport 解析,Preact PWA 性能优化案例

PWA 使用和配置说明

VSCode 上的 pwa-node 类型启动配置是啥?

webpack配置使用PWA