Dependências circulares para um aplicativo da Web usando backbone.marionette e requireJs

Eu estou na seguinte situação.

Eu estou usando o requireJs para carregar o módulo e não quero usar variáveis ​​globais.

O main.js é responsável por carregar o roteador.
Em seguida, o roteador carrega o aplicativo e o aplicativo carrega vários subApps.

Depois de tudo ter sido inicializado, o subApps precisa dorouter para fazerrouter.navigate.

Aqui o esquema:

main.js -> router -> app -> subApp -> router

Então eu tenho um problema de Dependências Circulares e por essa razão o roteador em subApp será indefinido.

Qual é a melhor maneira de reorganizar meu código ou corrigir esse problema? Há algum exemplo sobre isso?

questionAnswers(3)

yourAnswerToTheQuestion