TGViewer
Будни разработчика Будни разработчика @htmlshit · 14.4K subscribers
Post #4065 2.71K
#статья дня

Когда пакет долго живёт, у него очень легко появляется один большой index.ts, который реэкспортит почти всё подряд.

В какой-то момент это начинает мешать: вроде бы импортируешь один маленький хелпер, а на практике инструменты идут через общий barrel-файл и поднимают гораздо больший граф модулей, чем реально нужен. На этом особенно быстро начинают болеть тесты и дев-среда, потому что Vitest и Vite очень чувствительны к размеру и связности module graph.

Статья Organize your library with subpath exports как раз про более аккуратный способ это организовать. Идея в том, чтобы не складывать весь публичный API в один вход, а объявлять несколько явных входов через exports в package.json. Тогда вместо условного import { bau, useWow } from 'mylib' можно сделать import { bau } from 'mylib/helpers' и import { useWow } from 'mylib/hooks'.

Снаружи это выглядит как импорт из подпапок, но на самом деле это не доступ внутрь пакета, а специально объявленные публичные entrypoint’ы.

За счёт этого API пакета становится понятнее, внутренности лучше инкапсулируются, а tooling меньше спотыкается о лишние реэкспорты и случайные зависимости. Хороший короткий разбор, если хочется быстро понять сам подход и зачем он нужен.

#vite #barrel #esm
  • 👍 13
  • 👎 1
  • 🫡 1
More from @htmlshit
  1. Oct 1, 2026#фишка дня Давайте нормализуем выкладывание кода вместе с обучающим видео! Немного раздраж…
  2. Oct 1, 2026#фишка дня Каждому смотрящему сериалы известно, что один из самых лучших способов сделать…
  3. Sep 30, 2026Котаны, вам ещё и скидка по промокоду htmlshit, налетайте!
  4. Sep 30, 2026👨‍💻 Фронтенд с AI: что можно делегировать агентам 5 октября, стартует конференция Podlod…
  5. Sep 30, 2026Если хочется немного обновить свою Telegram-ленту, собрали папку RIA — Recommended Iconic…
  6. Sep 30, 2026#фишка дня На macOS пункт меню после клика не исчезает сразу. Сначала выбранный пункт коро…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →