Skip to content

build: оптимизация CSS Modules#3318

Merged
inomdzhon merged 3 commits intofeat/3276/components_to_css_modulesfrom
feat/3276/components_to_css_modules-rm-jsxRuntime
Oct 4, 2022
Merged

build: оптимизация CSS Modules#3318
inomdzhon merged 3 commits intofeat/3276/components_to_css_modulesfrom
feat/3276/components_to_css_modules-rm-jsxRuntime

Conversation

@inomdzhon
Copy link
Copy Markdown
Contributor

@inomdzhon inomdzhon commented Sep 19, 2022

Что было сделано?

Нюансы

(для начала надо ознакомиться с описанием задачи #3345)

1. Вычисляемые названия св-в

Дабы не править текущий код, сохранил возможность писать

styles[`Component--mode-${mode}`]

Но чтобы это работало, надо обязательно оставлять начало строкой. Короче:

// ❌
styles[`${somePrefix}-Component--${mode}`]

// ✅ 
styles[`Component--mode-${mode}`]

иначе плагин не сматчит класс.

2. Утилитарные функции в /helpers

Речь о:

  • getHoverClassName()
  • getMouseClassName()
  • getPlatformClassName()
  • getSizeXClassName()
  • getSizeYClassName()
  • getViewHeightClassName()
  • getViewWidthClassName()

Опять же, чтобы не переписывать текущее решение, прошёлся по коду и сделал минимальные изменения (на примере, getSizeYClassName()):

-getSizeYClassName("Button", sizeY, styles)
+getSizeYClassName(styles["Button"], sizeY)

В конечном итоге в сборке заменится строкой, а на проде функция конкатенирует sizeY:

getSizeYClassName("vkuiButton", sizeY) // => ex, "vkuiButton--sizeY-regular"

TODO

1 и 2 это пока временная мера. В будущем надо переписать на мапы написанные руками, по типу:

const sizeYClasses = {
  none: styles["Component--sizeY-none"],
  regular: styles["Component--sizeY-regular"],
  compact: styles["Component--sizeY-compact"],
};

sizeYClasses[sizeY]

или как-нибудь иначе.

Чеклист

  • Создать README.md для packages/babel-plugin-transform-css-modules под описание плагина
  • Написать тесты для packages/babel-plugin-transform-css-modules

@inomdzhon inomdzhon requested a review from a team as a code owner September 19, 2022 16:34
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Sep 19, 2022

size-limit report 📦

Path Size
JS 286.54 KB (-9.91% 🔽)
JS (gzip) 80.78 KB (-8.98% 🔽)
JS (brotli) 67.57 KB (-8.96% 🔽)
JS, unstable 27.91 KB (-4.67% 🔽)
CSS 246.23 KB (0%)
CSS (gzip) 32.26 KB (0%)
CSS (brotli) 26.2 KB (0%)
CSS, unstable 602 B (0%)

@github-actions
Copy link
Copy Markdown
Contributor

👀 Styleguide deployed

See the styleguide for this PR at https://vkcom.github.io/VKUI/pull/3318/

@BlackySoul BlackySoul force-pushed the feat/3276/components_to_css_modules branch 2 times, most recently from 97463ef to b2cd01e Compare September 21, 2022 05:31
@inomdzhon inomdzhon force-pushed the feat/3276/components_to_css_modules-rm-jsxRuntime branch from 60e6730 to b8388db Compare September 29, 2022 13:26
@codesandbox-ci
Copy link
Copy Markdown

codesandbox-ci bot commented Sep 29, 2022

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 5febe66:

Sandbox Source
VKUI - default example Configuration

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Sep 29, 2022

Code coverage

lines3750 / 487276.97%
statements3816 / 496576.85%
functions840 / 106778.72%
branches3434 / 478771.73%
branchesTrue0 / 0100.00%

Generated by 🚫 dangerJS against 5febe66

@inomdzhon inomdzhon changed the title build: remove jsxRuntime build: оптимизация CSS Modules Sep 29, 2022
@inomdzhon inomdzhon force-pushed the feat/3276/components_to_css_modules-rm-jsxRuntime branch from b8388db to 27b9aad Compare September 29, 2022 13:53
@SevereCloud
Copy link
Copy Markdown
Contributor

В сборке styleguide, ломается ViewWidthConditionalRender
image

@inomdzhon
Copy link
Copy Markdown
Contributor Author

В сборке styleguide, ломается ViewWidthConditionalRender

@SevereCloud поправил ✅

image

Спасибо 🙏

PS: ещё не запушил, пишу тесты для babel планина

@inomdzhon inomdzhon force-pushed the feat/3276/components_to_css_modules-rm-jsxRuntime branch 2 times, most recently from 54328ac to 5343ccb Compare October 3, 2022 13:40
@inomdzhon inomdzhon force-pushed the feat/3276/components_to_css_modules-rm-jsxRuntime branch from 5343ccb to 5febe66 Compare October 3, 2022 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

2 participants