nextjs-pwa
v1.0.1
Published
PWA for Next.js, powered by Workbox.
Downloads
24
Maintainers
Readme
Zero-config PWA plugin for Next.js
This plugin is powered by Workbox and other good stuff.
👋 Share your awesome PWA project 👉 here
Features
- 0️⃣ Zero-config for registering and generating service worker out of the box
- ✨ Optimized precaching and runtime caching
- 💯 Maximal Lighthouse score
- 🎈 Easy-to-understand examples
- 📴 Offline support with fallbacks (example)
- 📦 Uses Workbox and workbox-window v6
- 🍪 Works with cookies out of the box
- 🔉 Default range requests for audios and videos
- ☕ No custom server needed for Next.js 9+ (example)
- 🔧 Handle PWA lifecycle events (opt-in - example)
- 📐 Custom worker to run extra code with code splitting and Typescript support (example)
- 📜 Public environment variables are available in custom workers
- 🐞 Debug service worker in development mode without caching
- 🌏 Internationalization support (a.k.a i18n) with
next-i18next
(example) - 🛠 Configurable by Workbox's options for GenerateSW and InjectManifest
- ⚡ Supports blitz.js (simply add
blitz.config.js
) - 🚀 Spin up a GitPod and try out examples in rocket speed (or use
create-next-app
to create a brand new Next.js app with them (for example, runpnpm create next-app --example https://github.com/DuCanhGH/next-pwa/tree/master/examples/basic
to create a new Next.js app using thebasic
example))
NOTE 1 -
next-pwa
version 2.0.0+ should only work withNext.js
9.1+, and static files should only be served through thepublic
directory.NOTE 2 - If you encounter the error
TypeError: Cannot read property **'javascript' of undefined**
during build, please consider upgrading to Webpack 5 innext.config.js
.NOTE 3 -
nextjs-pwa
currently doesn't support Turbopack, but I will start working on it as soon as we get our hands on Turbopack. It may not use Workbox anymore depending on Workbox's maintain status, however.
Setup
Tips
See our tips on using next-pwa