Ответ
Да, сталкивался. Основные проблемы:
-
Циклические зависимости - когда модули зависят друг от друга. Решение - рефакторинг или использование паттерна "Dependency Injection".
-
Глобальное состояние - неожиданные изменения в shared модулях. Решение - изоляция состояния или Redux-like подход.
-
Именованные экспорты vs default экспорты - путаница при импорте. Лучше придерживаться одного стиля в проекте.
Пример проблемы с циклической зависимостью:
// moduleA.js
import { funcB } from './moduleB';
export const funcA = () => funcB();
// moduleB.js
import { funcA } from './moduleA';
export const funcB = () => funcA(); // Бесконечная рекурсия
Для решения таких проблем использую:
- Четкую архитектуру модулей
- Инструменты анализа зависимостей (webpack-bundle-analyzer)
- Lazy loading для больших модулей