Проверяет понимание разницы между интеграцией компонента как библиотеки и подключением уже собранной статики, что важно для архитектуры микрофронтендов и переиспользования UI.
Когда команда-потребитель подключает компонент как библиотеку, она добавляет его в свои зависимости и импортирует в исходном коде. Компонент становится частью сборки приложения: бандлер обрабатывает его вместе с остальным кодом, применяет tree-shaking, минификацию и типизацию. Это даёт сильную связанность на этапе компиляции, но требует согласования версий и пересборки при каждом обновлении.
Потребитель устанавливает пакет и импортирует компонент напрямую. Все зависимости и версии фиксируются в lock-файле, что обеспечивает воспроизводимость сборки.
// package.json потребителя
// "@company/ui-button": "^2.3.0"
import { Button } from '@company/ui-button';
export function App() {
return <Button onClick={() => alert('ok')}>Click</Button>;
}Компонент собирается отдельно и публикуется как статические файлы (JS, CSS) на CDN или отдельном домене. Потребитель подключает их через script-тег или динамический импорт по URL. Обновление компонента не требует пересборки потребителя, но версия не проверяется компилятором.
<script src="https://cdn.example.com/button/v2.3.0/button.js"></script>
<script>
window.UIButton.mount('#root', { text: 'Click' });
</script>На практике библиотеку выбирают, когда важны типы, tree-shaking и контроль версий. Статику — когда нужна независимая доставка и обновление без участия потребителя, например в микрофронтендах.
Итог: библиотека подходит для тесной интеграции и строгого контроля версий, готовая статика — для независимого деплоя и динамического подключения компонентов.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию