решение круговой зависимости в узле с помощью requirejs

Я пробовал много предложений, которые я нашел, прибегая к помощи круговой зависимости в node и requirejs. К сожалению, я не заставляю его работать. Попытка, которая закрыта для решения (я думаю) ниже:

// run.js
var requirejs = require('requirejs');

requirejs.config({
  baseUrl: __dirname,
  nodeRequire: require
});

requirejs(['A'], function(A) {
  var a = new A.Go();
  console.log(a.toon())
});


// A.js
define(['B', 'exports'], function(B, exports) {

  exports.Go = function() {
    var b = new require('B').Ho();
    var toon = function() {
      return 'me tarzan';
    }; 

    return {
      b: b,
      toon: toon
    }
  };
});


// B.js
define(['A', 'exports'], function(A, exports) {

  exports.Ho = function() {
    var a = new require('A').Go();
    var show = function() {
      return 'you jane';
    }

    return {
      a: a,
      show: show
    }
  };
});

Запуск этого кода в узле приводит к RangeError: Превышен максимальный размер стека вызовов У нас зависимость B удалена из A.js, 'me tarzan'. возвращается

Любое предложение приветствуется!

Ответы на вопрос(1)

Ваш ответ на вопрос