Repository navigation
feat: defer eager generation of @Nx srcset variants until render - #296
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
Adds an opt-in
defer_generationconfig key (bool, defaultfalse) that stops WordPress from eagerly generating Sproutset's@Nxretina srcset variants at upload, letting the existing on-demand path produce them lazily at render instead. Eager generation of the full roster (30+ Imagick passes off one large source) can exhaust PHP'smax_execution_time, most visibly on batch imports loopingmedia_handle_sideload().Every size's base entry stays eager, so a size always has a real intermediate file after upload and the front end never falls back to the full-size original; only the widest, most expensive
@Nxvariants are deferred. Default off — current behavior is a guaranteed no-op until a project opts in.Spec:
specs/defer-generation.md. Covered by unit and integration tests.Checklist
feat:,fix:,refactor:,perf:,revert:)