Я заменил .unregister()
на .register()
в index.tsx
моего CRA с проектом Typescript.
Вот код register()
:
export function register(config?: Config) {
if (process.env.NODE_ENV === 'development' && 'serviceWorker' in navigator) {
const publicUrl = new URL(
process.env.PUBLIC_URL,
window.location.href
);
if (publicUrl.origin !== window.location.origin) {
return;
}
window.addEventListener('install', () => console.log("Yup, installed"))
window.addEventListener('load', () => {
console.log("On load")
const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;
if (isLocalhost) {
registerValidSW(swUrl, config);
// checkValidServiceWorker(swUrl, config);
, но этот код не удается зарегистрировать работника службы, поскольку в папке publi c нет такого файла, как service-woker.js
. Я пробовал:
const swUrl = `${process.env.PUBLIC_URL}/serviceWorker.js`;
const swUrl = `service-worker.js`;
const swUrl = `./service-worker.js`;
const swUrl = `serviceWorker.js`;
const swUrl = `./serviceWorker.js`;
большинство, если не все перестановки, и все еще не смог разрешить перенесенную версию serviceWorker.ts
Вопросы
- Как разрешить файл
service-worker.js
или чем его можно заменить для разрешения. - При сборке проекта * 1029 Файл * в папке сборки выглядит совсем не так, как
serviceWorker.ts
, из которого, я бы предположил, он получен. Весь код в serviceWorker.ts отсутствует в service-worker.js
. Почему?