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

相關問題