问题标签 [workbox-webpack-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
webpack - 带有 webpack 5 的工作箱不生成预缓存清单
我目前正在尝试使用工作箱 InjectManifest 插件设置新的 webpack 5.0.0-alpha2。
据我所知,这应该生成一个 precacheManifest 并将其注入我的 serviceWorker 并替换workbox.precaching.precacheAndRoute(self.__precacheManifest || []);
.
但对我来说,没有生成 precacheManifest 并且这条线仍然存在。
这是我的 Workbox Webpack 插件配置:
所以没什么特别的。
laravel - 如何使用 Laravel Mix 和 WorkBox?
我正在尝试为我的应用构建 PWA;并且花了将近 48 小时试图弄清楚如何使用 Workbox 和 Laravel Mix。具有讽刺意味的是,谷歌说 Workbox 是为了让事情变得简单!
呸!
好吧,到目前为止我已经想通了——
我需要使用,
InjectManifest Plugin
因为我想在我的 Service Worker 中集成推送通知服务我不知道如何为
swSrc
and指定路径swDest
。什么代码应该进入我的
webpack.mix.js
,我是否应该在我的文件夹中有一个临时服务工作者来在resources/js
文件夹中创建一个新的服务工作者public/
。
有人可以帮忙吗?
PS:我几乎阅读了所有的博客和帮助文章;但没有人谈到可靠地使用 Workbox 和 Laravel 混合。非常感谢这里的一些帮助。
performance - 预存超过 1000 个资产损害性能
我正在使用 Vue CLI PWA 工作箱插件模式。我的应用程序有 1000 多个资产,预缓存它们会导致性能非常差。请检查一下:
有没有办法更具体地预缓存文件?例如,通过 URL 预缓存文件。在 urlx/y
上仅预缓存文件 1、5、6,在 url 上x/v
预缓存文件 7、8、2。
service-worker - 在开发中本地运行时工作箱冲突的缓存条目
在开发模式下(本地)使用 Workbox Webpack 插件时,我收到以下 service worker 错误:
PrecacheController.mjs:62 未捕获的 add-to-cache-list-conflicting-entries:传递给“workbox-precaching.PrecacheController.addToCacheList()”的两个条目的 URL 未定义但修订详细信息不同。Workbox 无法正确缓存和版本化资产。请删除其中一项。
我相信这种情况正在发生,因为当 webpack 重新构建时,它似乎向 precache 调用添加了两次静态资产。一次在service-worker.js
文件中,另一个在precache-manifest.XXX.js
文件中。查看这两个文件,我可以看到在两个地方都添加了块和条目脚本,包括service-worker.js
.
这在生产中不是问题,因为每个构建都会从头开始擦除和重建。
这是我的 Workbox Webpack 插件配置:
workbox - 如何更改 WorkboxPlugin 的预缓存路径?(使用 Jigsaw Php 框架)
我的问题是路径设置不正确。例如在 service-worker.js 它创建:
但是由于我使用的是 Jigsaw Framework 并且公共位置不同,所以它必须是
预缓存文件本身也是如此,所有路径都是错误的:
一定是
我尝试使用 globDirectory 设置,但它不起作用。
这是我的“标准”Webpack 配置:
javascript - Service Worker 正在被工作箱缓存
我有以下工作箱配置
我的快递服务器没有缓存服务人员
- 该页面的首次访问按预期工作。
service-worker.js
返回为最新版本并预缓存所有资产和shell.html
. - 刷新时,正如预期的那样,将
shell.html
提供服务而不是转到服务器,并且资产是从服务工作者提供的。 - 假设我重建资产并更新
service-worker.js
. - 我希望
service-worker.js
从服务器加载新资源,并预缓存所有新资源。
相反,我看到以下空响应
我在控制台中收到以下错误The script has an unsupported MIME type ('text/html').
所以看起来服务工作者正在服务shell/index.html
而不是去服务器service-worker.js
。为了验证这一点,我访问了view-source:https://localhost/service-worker.js
如下所示。如何阻止服务人员缓存自身。我以为这就是我正在做的navigateFallbackBlacklist
reactjs - 为什么我收到一条错误消息说 CacheFirst 未定义?
我正在使用工作箱为 React 项目构建服务人员,我不确定出了什么问题,但我在控制台中不断收到错误消息,提示无法读取未定义的属性 'CacheFirst'。
我正在获取的路由来自带有 sqlite 数据库的 nodejs 后端,它返回的数据来自数据库中列出的日期。我不确定这是否与它有关,或者它只是一个 Workbox 问题。每次更新此文件后,我执行了workbox injectionManifest,然后使用serve -s -p3000 build在浏览器中为应用程序提供服务。
webpack - 如何使用 workbox-webpack-plugin 从多个 webpack 构建中生成一个服务工作者?
这听起来可能很疯狂,但我正在创建多个 css 和 js 文件来为不同品牌构建我的应用程序。为此,我有大约 4 个单独的 webpack 文件,一个用于我的 js,这对于我的所有品牌和 3 个不同的 css 文件生成器都很常见。现在我想添加workbox-webpack-plugin
创建一个sw.js
和清单文件,它会自动导入所有清单文件。我该怎么做?
到目前为止我试过了
但是当我这样做时,最后一个 webpack 文件覆盖了整个输出 sw.js,这看起来很公平,所以我想我会一个一个地运行构建,并给出上一个构建生成swSrc
的输出sw.js
,没有锻炼。
我如何实现这一目标?请提供任何线索。
service-worker - 如何修改 Workbox 生成的预缓存清单文件?需要 url 前面有 '/'
在生成的precache-manifest.*.js
文件中,当我需要绝对路径时,所有 URL 都引用相对路径,因为我的应用程序也会有一些子目录。
生成文件示例:
当我需要它看起来像这样时:
我正在使用webpack
4.41.0 和workbox-webpack-plugin
4.3.1
任何帮助将不胜感激!如果需要,我也可以添加更多细节。
这是我的 webpack 配置:
还有我的 GenerateSW:
还有几个定义的公共变量: