-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
chore: replace lodash with es-toolkit #6502
base: master
Are you sure you want to change the base?
Conversation
48d65da
to
ae055a0
Compare
Some of our dependencies are using |
1d28dc6
to
461da26
Compare
f012bde
to
d6e415c
Compare
Valid point, but it seems like not too many dependencies are in fact using lodash. It should be relatively easy to clean this whole tree up. In the meantime, this draft PR is in itself ready to go I believe. :) |
Well, this PR DOES make Yarn smaller by a bit: Before: 2.62 MiB I believe that's because while other dependencies like 1% improvement is not much but it certainly adds up 🤷 I also see a potential of shaving off further 2 KB, but I'd rather do it in small stages. |
es-toolkit is a modern lodash alternative that claims to be much faster and lighter, potentially improving Yarn overall performance: https://es-toolkit.slash.page/intro.html
5e7959c
to
4809f3a
Compare
Because I patched it to do that, in the future we could change that patch to use |
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.
Please add an entry for lodash
and @types/lodash
here:
Line 211 in d5431bd
forbidDependency(ctx, `inquirer`, `Don't depend on inquirer - we use enquirer instead`); |
023df68
to
113c226
Compare
I couldn't forbid @types/lodash because it appears to be deeply rooted inside pkg-tests-specs, but lodash alone was fine :) |
@@ -209,6 +209,8 @@ module.exports = defineConfig({ | |||
enforceConsistentDependenciesAcrossTheProject(ctx); | |||
enforceWorkspaceDependenciesWhenPossible(ctx); | |||
forbidDependency(ctx, `inquirer`, `Don't depend on inquirer - we use enquirer instead`); | |||
forbidDependency(ctx, `lodash`, `Don't depend on lodash - we use es-toolkit instead`); | |||
forbidDependency(ctx, `inquirer`, `Don't depend on inquirer - we use enquirer instead`); |
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.
forbidDependency(ctx, `inquirer`, `Don't depend on inquirer - we use enquirer instead`); |
What's the problem this PR addresses?
es-toolkit is a modern lodash alternative that claims to be much faster and lighter, potentially improving Yarn overall performance: https://es-toolkit.slash.page/intro.html
How did you fix it?
The lazy way, frankly: using es-toolkit/compat to provide practically drop-in lodash replacement with minimal effort.
Checklist