馃彈馃殌 Provide a way to synchronously transform CSS in Babel #32485
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.
Background:
#30206 added a
babel
plugin for JSS transforms viapostcss
. Sincebabel
is sync butpostcss
plugins are async, the PR used achild_process
hack. See #30206 (comment) for the gory details. Under a profiler, each transform takes 2-3s to execute.PR highlights:
This PR adds a
sync-rpc
wrapper to the transform function. It too uses achild_process
, but the overhead is paid for just the first call. Every subsequent transform executes in < 50ms. Gains will be higher as the number of JSS transforms increases.Time spent by
gulp dist
on transforms:Before: 8%.
After: 1%.
Addresses #30206 (comment)