Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This experiment attempts to make
yarn run
faster through various means:An Esbuild plugin adds an indirection to all Clipanion commands so that their
execute
method is moved inside a lazily loaded module. This is meant to defer loading all 3rd-party vendors until the command gets actually executed, without having to manually move all imports inside theexecute
function itself.I removed Lodash and migrated the functions we used inside
miscUtils
I turned various imports into dynamic imports so that they are only used as needed
All in all it caused the amount of modules executed as part of
yarn run
to drop from ~760 to ~450 (fast-glob is a significant reason for that; perhaps we'll be able to get rid of it in a couple of years whenfs.glob
is more widely available):However the speed gain is fairly small on my machine: