VKUI icon indicating copy to clipboard operation
VKUI copied to clipboard

feat: use rspack

Open SevereCloud opened this issue 6 months ago • 7 comments

Требования

builtin:swc-loader компилируется со своей версией swc_core, поэтому для поддержки плагинов необходимо чтобы версия rust библиотеки swc_core совпадала в npm пакетах @swc/core, @rspack/core и swc-plugin-*

Что по перфу

git checkout SevereCloud/feat/use-rspack
yarn
cd package/vkui
hyperfine \
  --prepare 'git checkout master && rm -rf node_modules' \
    'yarn postcss:bundle # webpack' \
  --prepare 'git checkout SevereCloud/feat/use-rspack && rm -rf node_modules' \
    'yarn postcss:bundle # rspack'
Benchmark 1: yarn postcss:bundle # webpack
  Time (mean ± σ):      8.634 s ±  0.739 s    [User: 15.548 s, System: 2.244 s]
  Range (min … max):    7.989 s … 10.543 s    10 runs
 
Benchmark 2: yarn postcss:bundle # rspack
  Time (mean ± σ):      5.554 s ±  0.415 s    [User: 9.432 s, System: 1.520 s]
  Range (min … max):    5.144 s …  6.560 s    10 runs
 
Summary
  yarn postcss:bundle # rspack ran
    1.55 ± 0.18 times faster than yarn postcss:bundle # webpack

Что по css

Для минификации используется lightningcss

clean-webpack-plugin

Добавил clean-webpack-plugin для удаления .js.tmp. Размер npm пакета уменьшится на 4~ мегабайта

- -rw-r--r--    1 d.suvorov  staff   2.0M Oct 15 12:29 components.js.tmp
- -rw-r--r--    1 d.suvorov  staff   2.0M Oct 15 12:29 vkui.js.tmp

Release notes

Улучшения

  • css бандл теперь собирается с помощью rspack

SevereCloud avatar Jul 28 '24 22:07 SevereCloud