если модуль А зависит от модуля B и модуль B зависит от модуля A то мы можем:
1) лениво загружать зависимости через require в одном из модулей уже после инициализации (кастыль)
2) вынести часть функциональности от которой зависит один из модулей в третий модуль C, и таким образом мы устраним циклическую зависимость.