Skip to content
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

Only use the main lodash package #8583

Merged
merged 13 commits into from
Jun 13, 2023
Merged

Conversation

Tobbe
Copy link
Member

@Tobbe Tobbe commented Jun 10, 2023

I was reading this and figured I'd clean up our usage of lodash

Lodash methods are available in standalone per method packages like lodash.mapvalues, lodash.pickby, etc. These packages contain only the code the method depends on.

However, use of these packages is discouraged and they will be removed in v5.

Although they may seem more lightweight, they will usually increase the size of node_modules and webpack/rollup bundles in a project that transitively depends on multiple per method packages and/or the main lodash package.

https://lodash.com/per-method-packages

Should we make sure to always just include from specific parts of lodash, like doing import memoize from 'lodash/memoize', or can we trust our bundler to tree-shake that stuff for us? The lodash docs says we can, so that's why I didn't go through our code and update all imports.

Only thing I'm not sure about is usage like this:

import { _ } from 'lodash'

_.forEachRight(...)

Does tree-shaking work with code like that?

UPDATE: I decided to switch to specific method imports everywhere, like import { forEachRight } from 'lodash'

@Tobbe Tobbe added release:chore This PR is a chore (means nothing for users) fixture-ok Override the test project fixture check labels Jun 10, 2023
@Tobbe Tobbe enabled auto-merge (squash) June 11, 2023 13:13
@Tobbe Tobbe disabled auto-merge June 12, 2023 10:10
@Tobbe Tobbe enabled auto-merge (squash) June 13, 2023 07:39
@Tobbe Tobbe merged commit 0bdbf66 into redwoodjs:main Jun 13, 2023
25 checks passed
@redwoodjs-bot redwoodjs-bot bot added this to the next-release milestone Jun 13, 2023
jtoar pushed a commit that referenced this pull request Jun 22, 2023
* Only use the main lodash package

* import from lodash

* Make it easier to tree-shake lodash imports

* Try to disable replay for smoke tests

* Always use the 'list' reporter for smoke tests

* require just lodash

* lodash camelCase import

* lodash camelCase import 2

* Restore playwright config

* Only 'lodash'
@jtoar jtoar modified the milestones: next-release, v5.4.0 Jun 22, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fixture-ok Override the test project fixture check release:chore This PR is a chore (means nothing for users)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants