Je suis assez nouveau pour réagir de réact de la boîte de travail. J'essaie de faire en sorte que mon application d'électrons réagir a la capacité de mettre en cache toutes les images et toutes les données disponibles pendant son déconnexion.
C'est exactement ce que j'essaie d'accomplir comme dans cette vidéo YouTube. À partir de 14h00 à 21h00: Construire des PWA avec réaction et zone de travail, mais cette commande donne p> / regarder? v = ok2r1m1jm_m code>
C:\Users\rajesh.ram\Desktop\Day\K\demok\client>npm run start-sw
> client@0.1.0 start-sw C:\Users\rajesh.ram\Desktop\Day\K\demok\client
> workbox injectManifest workbox-config.js && workbox copylibraries build/ && http-server build/ -c 0
Using configuration from C:\Users\rajesh.ram\Desktop\Day\K\demok\client\workbox-config.js.
Service worker generation failed:
Unable to find a place to inject the manifest. Please ensure that your service worker file contains the followin
g:/(const precacheManifest =)\[\](;)/
3 Réponses :
Si vous suivez la vidéo strictement, assurez-vous que le fichier SW.Js personnalisé que vous créez dans le dossier SRC est exactement:
module.exports = { globDirectory: "build/", globPatterns: ["**/*.{json,ico,html,png,js,txt,css}"], swDest: "build/sw.js", swSrc: "src/sw.js", injectionPointRegexp: /(const precacheManifest = )\[\](;)/ };
Dans les versions de la boîte de travail plus récentes, y compris 5.1.3 Courant au moment de cet article, le paramètre qui spécifie le point d'injection pour le PRÉCACHEMANEFEST a changé de regex à la chaîne. Le nom du paramètre a également changé et autant que je puisse dire que ce n'est pas compatible en arrière ... ce qui signifie qu'il ne fonctionne plus pour utiliser plus de regex. Modification de ce paramètre par ci-dessus a fonctionné pour moi après le reste de la vidéo. p> Alors plusieurs autres mises à jour concernées Comment SW.JS est écrit aussi ... p> importScripts("workbox-v5.1.3/workbox-sw.js");
workbox.setConfig({ modulePathPrefix: "workbox-v5.1.3/" });
const precacheManifest = [injectionPoint];
workbox.precaching.precacheAndRoute(precacheManifest);
En modifiant le paramètre de Precacheandroute comme ci-dessous, il a fonctionné pour moi