3

默认情况下,新鲜的create-react-app项目中包含服务工作人员脚本。我不需要默认的registerServiceWorker.js和默认的service-worker.js(隐藏并在构建中可用),因为我想添加我自己的服务工作者。我想用es6语法创建我自己的服务工作者代码,所以只需将“sw.js”添加到公共文件夹中并将其注册到我的index.html中对我来说不是最好的选择。我如何用ES6create-react-app建立一些自定义的sw代码?添加自定义服务工作人员以创建反应应用程序

回答

1

如果您希望在初始生产部署之前禁用内置服务工作人员,请从src/index.js删除对serviceWorkerRegistration.register()的呼叫并添加您自己的服务人员。

如果您的网站/应用已经投入生产,则用户访问你的页面有serviceWorkerRegistration.unregister()后其换成serviceWorkerRegistration.unregister().时,服务人员将被卸载,它可能需要长达24小时的缓存中无效(取决于服务人员的服务方式)

另一种选择是弹出并配置其内置解决方案。

+1

然后,默认的'service-worker.js'仍然会在构建文件夹中生成并可用。我有兴趣用'ES6'编写我自己的服务工作者来替换它与构建文件夹中的服务工作者。我现在只是将我的sw代码写入公共文件夹的单独'sw.js'文件中,但它只是普通的vanilla js代码。 – Dude

+0

在官方存储库中有类似的建议,请看:https://github.com/facebookincubator/create-react-app/pull/2714 - 与此同时,正如我之前所说的,您有能力“弹出”,并做任何你喜欢:) –

+0

我从来没有在我的index.js serviceWorkerRegistration.register(),但工人继续工作,必须从/node_modules/react-scripts/template/index.js? – stackdave

相关问题