Kwiminyaka emininzi, umntu wathi, "Hey, singakwazi ukwenza le app ukufaka kwaye usebenza ngaphandle kwe-offline?" I-Cue ye-descent ye-PWA ye-rabbit hole: i-service worker setups, i-cache chaos, i-App Router ebandayo izinto, kwaye abasebenzisi basindwe kwi-versions ezidlulileyo ngaphandle kokufaka ngqo i-Cache Gods. Kukho zonke iimfuno ezibonisa ukunxibelelana ne-offline kunye ne-hope kunye ne-stack overflow threads. Ngoko ke ndingathanda into efanelekileyo ye-developer ye-caffeine eningi kunye ne-patience engaphezulu: Ndicwangcisa i-package yam. Introducing: next-pwa-pack Kuyinto i-drop-in wrapper ye-Next.js (yep, isebenza kakuhle nge-App Router) leyo ibonelela inkxaso epheleleyo ye-PWA ngexesha nje ukuvela isakhiwo yakho nge-provider eyodwa. import { PWAProvider } from "next-pwa-pack"; export default function layout({ children }) { return <PWAProvider>{children}</PWAProvider>; } yaye I-Tow app yakho ifumaneka njenge-native, isebenza ngaphandle kwe-offline, iiphepha ze-cache, iifayile ze-sync, nokuba iifayile kunye ne-devel panel eyenziwe ngexabiso ukuba ungenza ukuba kukho into yokusebenza. boom Nceda uqhagamshelane nawe kwaye uqhagamshelane nathi. Yintoni ndiyifaka oku Xa abathengi bafuna "offline-first" okanye "iimpawu ze-PWA", ndiye ndiza nje. , nje ukufumana ukuba ayikwazi ukuxhasa i-App Router entsha, okanye ndiyabakhokela i-my yayo kunye nokufika kwiphepha ngokugqithisileyo ukuze ubone ukuba umncedisi we-servicem. Kubonakala ukuba ndiza ukwakha isakhiwo se-SW efanayo nangaphezulu nangaphezulu. next-pwa Okwangoku, ndingathanda ukuba into ndingathanda i-no-brainer setup. Yinto efunyenwe ngexesha lokusebenza i-service worker, i-pre-caching, i-update logic, kunye ne-version control - kwaye iye ndiza. Yintoni ndingathanda kwiiprojekthi ye-Next.js yaye ndingathanda. Ndiyathile le nto. Yintoni yinto ngokwenene Phantsi kwe-Hood Izikhwama A Default Ukucinga Yaye Ukuba sw.js usebenzise i-HTML kunye ne-static asset caching nge-default efanelekileyo - imibuzo ye-HTML inokufumana i-TTL ye-10 imizuzu, kwaye i-assets efana ne-JS, i-CSS, kunye neengxaki zithunyelwe kalula. next-pwa-pack sw.js manifest.json offline.html Ukugcina zonke iifayile ze-browser kwi-sync, kusetyenziswa iziganeko ukuhambisa iinkcukacha kwi-session. Ukuba ushiye kwi-offline, inikeza i-lightweight ukuze abasebenzisi awukwazi ukufumana i-screen eluhlaza. localStorage offline.html Kwaye ngenxa yokuba akuyona kuphela "kuye offline", ndiye ingeza i-API encinci ukuze unako ukuxhaswa kunye ne-cache layer. Ungafuna ukuxhaswa zonke iinkcukacha ze-cache emva kwe-logout? Qhagamshelana. Ingaba ufuna ukuhanjiswa kwiphepha ezimbalwa emva kokuthunyelwe kwisiseko entsha? Yenza i-trick. Kwakhona Ukuba ufuna ukuyifaka umgangatho wokusetyenziswa okanye ukuyifaka kwi-versions ezintsha. clearAllCache() updateSWCache(["/blog", "/dashboard"]) usePWAStatus() I-Dev Mode Izixhobo Ukuba ufumane kwi-provider, unokufumana iphaneli ye-PWA ye-debug ebonakalayo kwi-app yakho. I-PWA ibonisa indawo yakho ye-online / ye-offline, ibonelela ukutya okanye ukucacisa i-cache, ukunciphisa umdlavuza we-service, kwaye ngexesha lokugqiba okanye ukunciphisa i-cache ngexesha elidlulileyo. Akukho ukucacisa kwi-Chrome DevTools okanye ukunciphisa umdlavuza we-service ngexesha elincinane imizuzu. devMode A few things to keep in mind Yintoni i-magic, ngoko ke kufuneka uqhagamshelane i-manifest.json yakho kunye nokulandisa i-icons ukuba ufuna ukufaka i-banners ukuze kubonakala kakuhle. Thina i-Cache kuphela i-GET requests - akukho iinkcukacha ze-mutation okanye i-POST sensitive - kwaye ukuba ufuna ukuguqulwa kwe-HTML TTL okanye ezinye iinkqubo ze-caching, kufuneka uqhagamshelane le ngokuzenzekelayo (ngoku - isisombululo esuka). sw.js Kodwa ngexesha lokusebenza, umphumela iyimfuneko, kwaye ukuba nayiphi na, abasebenzisi abalandeli uya kufumana isantya sokukhuthaza ukusabela kwi-cache. Yintoni i I-Roadmap ibandakanya inkxaso yeengxaki ze-TTL ezisekelwe kwi-config, iingcebiso ze-push, iinkqubo ze-cache ezisemthethweni ezisekelwe kwi-URL patterns, ukuhlanganiswa ne-ISR (Incremental Static Regeneration), kunye nokuba i-dashboard eyongezwayo yokuhamba i-cache hit / miss metrics ngexesha elifanayo. Ngathi;Dr Ukwakhiwa njengoko ndingathanda i-hand-wire service workers kunye ne-debugging ye-staile caches ekukhiqizeni. Isebenza ngaphandle kwe-box, isebenza kakuhle nge-akhawunti entsha iimveliso, kwaye ithatha i-app yakho kalula, i-installable, kunye ne-resilient - ngaphandle kokukhuthaza i-dev sanity yakho. next-pwa-pack Next.js Yinto open source, ungakwazi ukucinga apha: <https://github.com/dev-family/next-pwa-pack](https://github.com/dev-family/next-pwa-pack) Ukusetyenziswa, ukuqhuba, ukuchithwa - kwaye nceda uqhagamshelane njani. Qhagamshelana!