我正在dist目录中运行以下命令。
workbox copyLibraries dist/en-in/; workbox generateSW workbox-config-prod.js;
服务工作者文件调用
importScripts("/workbox-v4.3.1/workbox-sw.js");
workbox-sw.js下载以下文件:
workbox-core.prod.js
workbox-precaching.prod.js
workbox-routing.prod.js
workbox-strategies.prod.js
workbox-expiration.prod.js
workbox-cacheable-response.prod.js"
问题1:
我已经为/workbox-v4.3.1/路径提供的所有文件设置了较长的过期缓存头因为它是版本。这种方法有什么缺点吗?
问题2:
Workbox可以为不使用任何捆绑程序的团队提供支持吗?
如果workbox-cli可以输出单个文件,1.仅那些在workbox-config文件中引用的Workbox模块。2.从workbox-config文件生成的代码。3.缩小这就是sw-precache用于生成服务工作者文件的方式。
我已为从中投放的所有文件设置了较长的过期缓存标头/workbox-v4.3.1/路径,因为它已被版本化。有什么缺点吗这种方法?
该方法没有任何缺点,因为正如您提到的,URL中使用了/v4.3.1/
路径段,因此内容永远都不会改变。关于是否确实检查通过importScripts()
加载的URL(在所有Workbox URL中发生)的细节,在细节上有一些细微差别,请参见this article。但是您使用Cache-Control
标头所做的应该没问题。
Workbox可以为不使用任何捆绑程序的团队提供支持吗?
对于Workbox v5(截至2019年11月,预发行版),使用generateSW
进行以下配置很简单:
{
inlineWorkboxRuntime: true,
mode: 'production',
sourcemap: false,
// ...other options...
}
这将生成一个单一的服务工作程序文件,其中包含缩小的Workbox运行时内联代码,没有源映射,这与输出所获得的一样简单。在后台,Workbox将使用Rollup为您创建一个自定义包,其中仅包含您实际需要的部分,因此您不必担心自己进行捆绑。