Tailwind v4 · PostCSS · 2026

2026: Tailwind v4, PostCSS — память Node и воркеры на remote Mac

30.03.2026 Фронтенд / Full-stack 6 мин чтения

Для кого: фронтенд и fullstack на удалённом Mac: Tailwind CSS v4 через @tailwindcss/postcss или Vite. Пики RSS чаще приходятся на CSS-пайплайн и параллельные job’ы CI, а не на первый проход TypeScript. Ниже — таблица сценариев: NODE_OPTIONS, воркеры и каталоги кэша для runbook рядом с YAML. Внутренние материалы: кэш Vite/webpack, память Node и SSR, monorepo и Turborepo.

01 Почему растёт память в Tailwind v4 + PostCSS

Tailwind v4 обычно идёт как @tailwindcss/postcss или @tailwindcss/vite: сканирование контента и CSS-граф дают высокий RSS; два параллельных turbo run build на 16 ГБ почти удваивают пик. В логах — JavaScript heap out of memory или 137 от OOM-killer. Только увеличивать --max-old-space-size, не трогая параллелизм, часто значит уйти в swap и долгий красный билд.

02 Таблица: NODE_OPTIONS, воркеры, кэш

Сценарий CI / SSH Пример NODE_OPTIONS (на задачу) Воркеры / параллелизм Каталоги кэша (типично) Заметка
Один пакет: vite build + PostCSS-плагин Tailwind v4 --max-old-space-size=61448192 1 тяжёлая сборка на хост; при 8+ P-ядрах Vite часто ок без ручного капа node_modules/.vite, node_modules/.cache Сначала кап job’ов, потом heap.
Monorepo: turbo run build — 2 пакета с CSS --max-old-space-size=40966144 на процесс turbo --concurrency=1 или 2 только если суммарный RSS проверен .turbo/cache, плюс кэши пакетов как в строке выше Не смешивать с E2E в одном слоте.
webpack / postcss-loader, prod-сборка --max-old-space-size=8192 при одной задаче на 16 ГБ parallelism / thread-loader смотреть по CPU; старт: ≤ числа P-ядер node_modules/.cache/postcss-loader, node_modules/.cache Снижать parallelism loader’ов раньше, чем кучу.

03 Параметры для shell и CI

В том же шаге, что и сборка (CI или SSH):

  • Куча: export NODE_OPTIONS="--max-old-space-size=8192" на одну prod-сборку при 16 ГБ; при двух процессах — 40966144 каждый или убрать параллель.
  • libuv (опционально): export UV_THREADPOOL_SIZE=8 ≤ P-ядер; не заменяет кап бандлера.
  • Monorepo: turbo run build --concurrency=1 до замеров; кэш сбрасывать: node_modules/.vite, node_modules/.cache, при необходимости .turbo после апгрейда Tailwind.

04 Safari / WebKit

После зелёного build — точечная проверка UI в Safari/WebKit на устройстве или smoke; отдельная приёмка, здесь лишь пометка в runbook.

05 FAQ

Ноутбук vs remote Mac? Иной параллелизм CI и меньше «чистой» RAM под задачу.

arm64? На Apple Silicon используйте arm64 Node — x64 под эмуляцией тяжелее по памяти и времени.

Вывод

Согласуйте NODE_OPTIONS и параллелизм; кэши .vite, node_modules/.cache, .turbo чистите при обновлении Tailwind/PostCSS — так проще ловить стабильный CI на удалённом Mac в 2026 году.

Apple Silicon под сборку CSS

Аренда / покупка Mac под Tailwind v4 и CI

Вынесите vite build и PostCSS на выделенный Mac mini M4: предсказуемая RAM и диск под кэши. Аренда или покупка без обязательного входа — тарифы, SSH или runner без конкуренции с локальным ноутбуком за память.

RAM CSS Apple Silicon
Купить без входа