-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
yarn
→ pnpm
#9476
yarn
→ pnpm
#9476
Conversation
dc6ad84
to
eea6ff0
Compare
Size Change: -259 kB (-26%) 🎉 Total Size: 742 kB
ℹ️ View Unchanged
|
c475c61
to
e513b26
Compare
56a211b
to
ac7cb12
Compare
ad87a6a
to
cd503d1
Compare
12144f5
to
0026f61
Compare
741d462
to
889b57a
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let’s make this package management performant!
(left three teeny-tiny comments, which can be addressed in a follow-up)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚀 Very nice performance bump and the culmination of lots of prior work.
Just as a precaution could we deploy this to CODE pls to make sure the prod build and start is not affected. I will raise a ticket to add a GHA check to run the prod task so this is automated in future.
DCR deployed to CODE here https://riffraff.gutools.co.uk/deployment/view/0d3751e5-0a93-4d50-8961-5fb5c7cd0ec3 🟢 AR here https://riffraff.gutools.co.uk/deployment/view/0b31d225-9883-49cb-82b3-35a821c1bf18 🟢 |
What does this change?
Swaps
yarn
forpnpm
pnpm
is much faster to install, much lighter on disk, and because of that it is able isolate dependencies so that no transitive deps are available.Updating the apps to get this working has surfaced real bugs and instability.
Using
pnpm
should hopefully prevent this class of bug recurring, while keeping a useable, predictablenode_modules
dirs around (unlike, for example, yarn's pnp mode, which solves the problem in a more non-standard way).Note
To get the build working, I had to create the
pnpm-lock.yaml
from scratch – importing the currentyarn.lock
resulted in various issues with webpack types (and i think others too) which starting clean resolved.This means that dependencies will have been bumped to the latest available versions in the specified ranges. This is probably a good thing, but it does mean that build output is not going to be identical to
main
. I think that's ok?node_modules
make install
(no changes)./.github/actions/setup-node-env
(with a cache hit)Removes the
preinstall
corepack checkOnly yarn runs the
preinstall
hook before installing (see here and here), so there's not a lot of point in keeping this around.