Introducing Serwist. #121
Replies: 10 comments 82 replies
-
Although serwist is good, but there are some features that are available in your next-pwa fork but not in @serwist/next. Edit: The feature I want the most is offline fallbacks. I just read that you have removed it temporarily. |
Beta Was this translation helpful? Give feedback.
-
@DuCanhGH the URL of https://github.com/serwist/serwist is going to https://www.youtube.com/watch?v=dQw4w9WgXcQ 😄 Maybe this little migration guide could be in a place more visible. |
Beta Was this translation helpful? Give feedback.
-
I cannot install this package. It is like only macOS had been specifically targeted yet.
|
Beta Was this translation helpful? Give feedback.
-
I'm not sure if this is good or not, haven't looked into it enough yet, but I really appreciate your continued effort! Would you recommend to continue using |
Beta Was this translation helpful? Give feedback.
-
Somehow, I wasn't able to get your fork of next-pwa working, but this is working like a charm lol. |
Beta Was this translation helpful? Give feedback.
-
Just migrated from next-pwa to serwist few hours ago, looking great so far, do you think about enabling the sponsor for the new project? |
Beta Was this translation helpful? Give feedback.
-
just come here to say thank you for your effort ❤️ |
Beta Was this translation helpful? Give feedback.
-
Hello, I'd like to confirm if my understanding is correct on the following points:
Thank you. |
Beta Was this translation helpful? Give feedback.
-
Hey @DuCanhGH, |
Beta Was this translation helpful? Give feedback.
-
Please stop using this thread to ask questions related to Serwist. You should open a new Discussion in Serwist's repo instead. |
Beta Was this translation helpful? Give feedback.
-
Serwist
I'm proud to announce Serwist, the successor of
@ducanh2912/next-pwa
. Here is its current home: https://github.com/serwist/serwist. What have changed between@ducanh2912/[email protected]
and@serwist/[email protected]
are listed here.It is a fork of Workbox, which is why Workbox's commit history and list of contributors remain intact. We don't, however, have it marked as a fork because it causes issues with searching for the repo on Github. Two months of work (I actually slacked off a lot to be honest) went into it so as to remove unnecessary burden on the codebase.
It is also a successor of
@ducanh2912/next-sw
, which used to be my silly attempt at reinventing the wheel...Future plans
@serwist/vite
.Why?
Maintenance for Workbox pretty much... stopped. There hasn't been any activity from its active maintainer for nearly half a year, and that last activity also took place after nearly a year of hiatus. Some of its dependencies are deprecated/vulnerable, which leaves us to a hellhole of security risks. I felt like taking the project under my wing, but, same as
@ducanh2912/next-pwa
, this project won't be advertised around.What does this mean for
@ducanh2912/next-pwa
?This changes things for the package. While I won't add a lot of new features like in the past, I will keep it maintained. This repo was what truly introduced me to the world of doing open source, and it has taught me a lot of things.
Note that
@ducanh2912/next-pwa@10
, the last (or not?) major release, will be released soon (approx. 3 weeks). Being essentially a backport from@serwist/[email protected]
, it will change and remove a lot of unnecessary features.Why was GenerateSW removed?
I felt like it was too much burden on Serwist's codebase for pretty much nothing. In exchange, I added
@serwist/sw
, which exportsinstallSerwist
, a function that works like GenerateSW in InjectManifest. Simply put, to migrate from@ducanh2912/next-pwa
to@serwist/next
, you only need to addapp/sw.{ts,js}
:Then change your
next.config.mjs
:This allows you to use modules in
urlPattern
since we no longer try to stringify the function.NodeNext support
WhilemoduleResolution: "nodenext"
with"type": "module"
works fine,"type": "commonjs"
doesn't for now. This is because I've not figured out a way to emit.d.cts
for.ts
files withtsc
(it would emit.d.cts
for.cts
files, but I'd rather not duplicate code for such a silly reason) withoutrollup-plugin-dts
(this package doesn't play nice withdeclarationMap
for obvious reasons). So, unfortunately, I guess you'd have to usemoduleResolution: "node"
for now (or just start using"type": "module"
) if you are using Serwist.The above issue 🤓☝️ has been fixed.
Afterword
Thank you for your continued support! It really means a lot to me :)
I'd also like to thank @KPixel (sorry for tagging you the millionth time) for helping me out with the project!
Happy thoughts...
Beta Was this translation helpful? Give feedback.
All reactions