Revalidate Docs / Revalidate Docs (push) Failing after 2s
E2E CI / Check Duplicate Run (push) Failing after 5s
Test CI / Check Duplicate Run (push) Failing after 6s
E2E CI / Test Web App (push) Has been skipped
Test CI / Test Packages (push) Has been skipped
Test CI / Test App (shard 1/3) (push) Has been skipped
Test CI / Test App (shard 2/3) (push) Has been skipped
Test CI / Test App (shard 3/3) (push) Has been skipped
Test CI / Test Desktop App (push) Has been skipped
🔄 Branch Synchronization / sync-branches (push) Failing after 11s
Test CI / Test Database (push) Has been skipped
Test CI / Merge and Upload App Coverage (push) Has been skipped
Database Schema Visualization CI / build (push) Failing after 4m14s
26 lines
778 B
TypeScript
26 lines
778 B
TypeScript
import type { Plugin } from 'vite';
|
|
|
|
/**
|
|
* Forces emotion's speedy mode in antd-style.
|
|
*
|
|
* antd-style hardcodes `speedy: false` in both createStaticStyles and
|
|
* createInstance, which causes emotion to create a new <style> element
|
|
* for every CSS rule (n % 1 === 0 is always true).
|
|
* With speedy: true, one <style> tag holds up to 65 000 rules via
|
|
* CSSStyleSheet.insertRule(), eliminating thousands of DOM insertBefore calls.
|
|
*/
|
|
export function viteEmotionSpeedy(): Plugin {
|
|
return {
|
|
name: 'emotion-speedy',
|
|
enforce: 'pre',
|
|
transform(code, id) {
|
|
if (id.includes('antd-style') && code.includes('speedy: false')) {
|
|
return {
|
|
code: code.replaceAll('speedy: false', 'speedy: true'),
|
|
map: null,
|
|
};
|
|
}
|
|
},
|
|
};
|
|
}
|