不使用CDN使用工作箱

问题描述 投票:2回答:1

有人知道如何使用CDN而不使用它吗?我试过了...

workbox-cli添加到我的依赖项中:

    "workbox-cli": "^3.6.3"

使我具有以下所有依赖性

$ ls node_modules | grep workbox
workbox-background-sync
workbox-broadcast-cache-update
workbox-build
workbox-cacheable-response
workbox-cache-expiration
workbox-cli
workbox-core
workbox-google-analytics
workbox-navigation-preload
workbox-precaching
workbox-range-requests
workbox-routing
workbox-strategies
workbox-streams
workbox-sw

然后我在示例中替换了此行

importScripts('https://storage.googleapis.com/workbox-cdn/releases/3.6.1/workbox-sw.js');

与此

importScripts('workbox-sw.js');

node_modules/workbox-sw/build/workbox-sw.js复制到公用文件夹之后

但是现在我通过查看网络选项卡意识到,该文件仍然从CDN中获取所有其他模块

network tab

(我以为它将在其中包含所有内容。)

有人可以告诉我某个地方是否已经装有npm软件包吗?还是应该从npm文件夹中复制所需的模块,然后以某种方式将它们自己捆绑在一起?还是我必须使用webpack插件? (我想它只会捆绑我使用的模块)

progressive-web-apps workbox
1个回答
7
投票

((更新:Workbox v5使使用Workbox运行时的本地副本的过程更加简单,并且在大多数情况下,这是默认设置。)

还需要执行一个步骤。 “ Using Local Workbox Files Instead of CDN”的详细信息:

如果您不想使用CDN,可以很容易地切换到在您自己的域上托管的工作箱文件。

最简单的方法是通过workbox-cli的文件copyLibraries command或从GitHub版本发布,然后告诉copyLibraries在哪里找到这些文件通过modulePathPrefix配置选项。

如果将文件放在/ third_party / workbox /下,则将使用它们像这样:

workbox-sw

因此,您将仅使用本地Workbox文件。

© www.soinside.com 2019 - 2024. All rights reserved.