Javascript 创建react应用程序使用自定义服务工作程序而不弹出

Javascript 创建react应用程序使用自定义服务工作程序而不弹出,javascript,reactjs,webpack,service-worker,Javascript,Reactjs,Webpack,Service Worker,我有一个正在尝试转换为使用React的现有应用程序。我用全新的create react应用程序one(使用react脚本1.0.13)复制了它的功能 我想使用现有的服务人员。我注意到CRA创建了自己的服务人员;webpack配置中有代码(使用swebpackplugin)创建一个未绑定的模块,service worker.js。所有其他JS模块都捆绑在一起 据我所知,我不能复制我现有的service workerexisting service worker.js并尝试导入它,因为所有的js模块

我有一个正在尝试转换为使用React的现有应用程序。我用全新的
create react应用程序
one(使用
react脚本
1.0.13)复制了它的功能

我想使用现有的服务人员。我注意到CRA创建了自己的服务人员;webpack配置中有代码(使用
swebpackplugin
)创建一个未绑定的模块,
service worker.js
。所有其他JS模块都捆绑在一起

据我所知,我不能复制我现有的service worker
existing service worker.js
并尝试导入它,因为所有的js模块都捆绑在一起

我不想弹出。

我使用了
create react app
来定制
react脚本
,并在网页包配置中使用不同的逻辑,这将允许我使用现有的服务人员,而不是它使用
swprecacheebpackplugin创建的服务人员
。。。然而,我不知道该怎么做。这是我第一次使用React和webpack


有人能给我指出正确的方向,帮我在React中使用现有的服务人员,而不弹出吗?

我没有弹出

您可以将工作人员放置在
公共
文件夹中,然后您必须自己进行传输和缩小


如本文所述

这里是另一种不弹出的解决方案:


有一个专门为此用例构建的npm库。它叫

大部分详细信息都在npm页面中,但简单地说,您只需要安装库(npm i—save cra append sw)

对package.json进行一些更改:

"start": "react-scripts start && cra-append-sw --mode dev ./public/custom-sw-import.js",
"build": "react-scripts build && cra-append-sw --skip-compile ./public/custom-sw-import.js" 
最后,在您的公用文件夹中创建一个名为custom-sw-import.js的文件,您在其中编写的所有服务工作者代码将简单地附加到cra的服务工作者中

我可以验证这一点,因为我应用了相同的原理来制作我的网站,该网站提供了PWA提供的所有功能的演示


我还发现,如果你想了解更多,这篇博文会很有帮助。

第4版的好消息!:

从CreateReact应用程序4开始,您可以完全控制 通过创建您自己的服务工作程序,自定义此服务工作程序中的逻辑 src/service-worker.js文件,或自定义 cra模板pwa(或cra模板pwa类型脚本)模板

()