Вопрос проверяет понимание архитектурных подходов к шарингу кода между независимыми проектами и умение выбирать подходящий способ вместо Module Federation.
Переиспользование кода между независимыми проектами — это задача, которая решается на разных уровнях: от публикации библиотек до организации единого репозитория. Module Federation — лишь один из вариантов, ориентированный на runtime-композицию микрофронтендов. Ниже разобраны альтернативы и их сценарии применения.
// packages/ui/src/Button.tsx
export const Button = ({ label }: { label: string }) => (
<button className="btn">{label}</button>
);
// apps/web/package.json
{
"dependencies": {
"@acme/ui": "workspace:*"
}
}
// apps/web/src/App.tsx
import { Button } from '@acme/ui';
export const App = () => <Button label="Click" />;Здесь pnpm workspaces связывает пакеты локально, а Turborepo кэширует сборку. При необходимости пакет публикуется в реестр и используется внешними командами.
Итог: если проекты развиваются вместе и общий код меняется часто — выбирайте монорепозиторий; если нужна строгая изоляция и версионирование — публикуйте npm-пакеты; генераторы и submodules уместны для шаблонов и редких обновлений.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию