Reactjs 使用create react app添加更多服务人员功能
因此,CreateReact应用程序包含服务人员功能,这很可爱——我所有的静态资产都会被缓存起来,以便脱机使用。很酷,但现在我想更进一步,使用indexedDB缓存一些动态内容 问题是,没有可修改的service-worker.js文件。它在构建过程中生成Reactjs 使用create react app添加更多服务人员功能,reactjs,indexeddb,service-worker,create-react-app,progressive-web-apps,Reactjs,Indexeddb,Service Worker,Create React App,Progressive Web Apps,因此,CreateReact应用程序包含服务人员功能,这很可爱——我所有的静态资产都会被缓存起来,以便脱机使用。很酷,但现在我想更进一步,使用indexedDB缓存一些动态内容 问题是,没有可修改的service-worker.js文件。它在构建过程中生成 有没有一种方法可以在不弹出create react app或重做所有漂亮的静态缓存内容的情况下添加额外的逻辑?正如您所观察到的,create react app的配置被锁定,服务工作者逻辑完全在配置中定义 如果您不想弹出,但想进行一些定制,另
有没有一种方法可以在不弹出create react app或重做所有漂亮的静态缓存内容的情况下添加额外的逻辑?正如您所观察到的,
create react app的配置被锁定,服务工作者逻辑完全在配置中定义
如果您不想弹出,但想进行一些定制,另一个选项是修改create-react-app
build过程,在正常构建完成后显式调用sw-precache
CLI,覆盖默认情况下create-react-app
生成的service worker.js
。因为这涉及到修改本地的package.json
,所以不需要先弹出
这里有一些关于这种方法的信息,总体思路是修改npm
脚本,使其看起来像:
"build": "react-scripts build && sw-precache --config=sw-precache-config.js"
根据您的需要使用sw precache config.js
,但包括
swFilePath: './build/service-worker.js'
为了确保内置的service worker.js
被覆盖。我也有同样的问题,在不执行eject
的情况下,我可以将默认的service worker
替换为workbox
生成的,以添加运行时缓存webfonts、api调用等
安装workbox build
准备src/sw template.js
以添加您的registerRoute
调用
准备/build sw.js
将workbox文件复制到“build”文件夹和injectManifest
修改package.json
脚本以在build sw.js
修改src/registerServiceWorker.js
以替换默认的
您可以找到。AFIK您必须先弹出您的应用程序,然后才能编辑它的service worker
Try,您还可以按照此处了解有关Sass的更多详细信息。有关Sass的详细信息,您可以添加您的研究。哈哈。。。谢谢,杰夫。这看起来很有希望。因此,使用这种方法,我将如何将自己的代码放入service-worker.js文件中?查看sw precache文档,可能类似于importScripts选项?软件工具箱看起来也很有前途。。。我走对了吗?事实上@Jeff,我刚刚看了你的节目。看起来棒极了。不知道我是否可以使用类似于“build”:“react scripts build&&workbox cli generate:sw--config file=workbox config.js”
的内容来覆盖service-worker.js文件?是的,绝对可以。您也可以这样做。另请参见: